📄 seqlist.h
字号:
#include <iostream.h>
#include <stdlib.h>
const int MaxSize = 100; //MaxSize是问题要求的元素数目的最大值
class SeqList
{
private:
datatype data[MaxSize]; //静态数组
int size; //数组的当前存储位置
public:
SeqList(void); //构造函数
~SeqList(void); //析构函数
int ListSize(void) const; //返回表元素的个数
int ListEmpty(void) const; //检测表是否为空
int Find(datatype& item) const; //定位元素item的位置
datatype GetData(int pos) const; //返回位置pos的元素
void Insert(const datatype& item, int pos);//在位置pos插入元素item
datatype Delete(const int pos); //删除位置pos的元素并返回
void Clearlist(void); //把表清空
};
//构造函数。置顺序表的当前存储位置size为0
SeqList::SeqList(void):size(0){}
//析构函数
SeqList::~SeqList(void){}
//返回顺序表的当前存储位置size的值
int SeqList::ListSize(void) const
{
return size;
}
//判顺序表空否,为空返回1;不空返回0
int SeqList::ListEmpty(void) const
{
if (size == 0) return 1;
else return 0;
}
//定位元素item的位置。返回值为item在顺序表中的位置;返回值为-1表示不存在
int SeqList::Find(datatype& item) const
{
if(ListEmpty()) return -1;
int i=0;
while(i < size && item != data[i]) i++; //寻找item
if(i < size) return i;
else return -1;
}
//取顺序表中位置pos上的元素。参数出错时退出
datatype SeqList::GetData(int pos) const
{
if(pos < 0 || pos > size - 1) //取的元素序号必须在0至size-1之间
{
cerr << "参数pos越界出错!" << endl;
exit(1); //参数1表示出错退出
}
return data[pos];
}
//在指定位置pos插入一个数据元素item
void SeqList::Insert(const datatype& item, int pos)
{
int i;
if (size == MaxSize)
{
cerr << "顺序表已满无法插入!" << endl;
exit(1);
}
if(pos < 0 || pos > size) //当pos等于size时表示插入在最后
{
cerr << "参数pos越界出错!" << endl;
exit(1);
}
//从后向前把前一个元素迁移到后一个元素位置直到存储位置pos为止
for(i = size; i > pos; i--) data[i] = data[i-1];
data[pos] = item; //在pos位置插入item
size++; //存储当前位置size加1
}
//删除指定位置pos上的数据元素
datatype SeqList::Delete(const int pos)
{
if (size == 0)
{
cerr << "顺序表已空无元素可删!" << endl;
exit(1);
}
if(pos < 0 || pos > size - 1) //删除元素序号必须在0至size-1之间
{
cerr<<"参数pos越界出错!"<<endl;
exit(1);
}
datatype temp = data[pos];
//从pos至size-2逐个元素左移,data[size-1]移入data[size-2]中
for(int i = pos;i < size-1; i++) data[i] = data[i+1];
size--; //存储当前位置size减1
return temp;
}
//置顺序表为空
void SeqList::Clearlist(void)
{
size = 0; //存储当前位置size置为初始化值
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -