📄 seqlist.h
字号:
class SeqList
{
protected:
DataType *list; //数组
int maxSize; //最大元素个数
int size; //当前元素个数
public:
SeqList(int max=0); //构造函数
~SeqList(void); //析构函数
int Size(void) const; //取当前数据元素个数
void Insert(const DataType& item, int i);//插入
DataType Delete(const int i); //删除
DataType GetData(int i) const; //取数据元素
};
SeqList::SeqList(int max) //构造函数
{
maxSize = max;
size = 0;
list = new DataType[maxSize];
}
SeqList::~SeqList(void) //析构函数
{
delete []list;
}
int SeqList::Size(void) const //取当前数据元素个数
{
return size;
}
void SeqList::Insert(const DataType& item, int i) //插入
//在指定位置i前插入一个数据元素item
{
if (size == maxSize)
{
cout << "顺序表已满无法插入!" << endl;
exit(0);
}
if(i < 0 || i > size) //参数正确与否判断
{
cout << "参数i越界出错!" << endl;
exit(0);
}
//从size-1至i逐个元素后移
for(int j = size; j > i; j--) list[j] = list[j-1];
list[i] = item; //在i位置插入item
size++; //当前元素个数加1
}
DataType SeqList::Delete(const int i) //删除
//删除指定位置i的数据元素,删除的元素由函数返回
{
if (size == 0)
{
cout << "顺序表已空无元素可删!" << endl;
exit(0);
}
if(i < 0 || i > size - 1) //参数正确与否判断
{
cout<<"参数i越界出错!"<<endl;
exit(0);
}
DataType x = list[i]; //取到要删除的元素
//从i+1至size-1逐个元素前移
for(int j = i;j < size-1; j++) list[j] = list[j+1];
size--; //当前元素个数减1
return x; //返回删除的元素
}
DataType SeqList::GetData(int i) const //取数据元素
//取位置i的数据元素,取到的数据元素由函数返回
{
if(i < 0 || i > size - 1) //参数正确与否判断
{
cout << "参数i越界出错!" << endl;
exit(0);
}
return list[i]; //返回取到的元素
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -