📄 seqlist.h
字号:
#include <iostream.h>
#include <stdlib.h>
class SeqList
{
private:
DataType data[MaxListSize];
int size;
public:
SeqList(void);
~SeqList(void);
int ListSize(void)const;
int ListEmpty(void)const;
int Find(DataType& item)const;
DataType GetData(int pos) const;
void Insert(const DataType& item,int pos);
DataType Delete(const int pos);
void ClearList(void);
};
//构造函数。置顺序表的当前元素个数size为
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 (size==0) 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)
{
cout<<"参数pos越界出错!"<<endl;
exit(0);
}
return data[pos];
}
//在指定位置pos插入一个数据元素item
void SeqList::Insert(const DataType& item,int pos)
{
int i;
if (size==MaxListSize)
{
cout<<"顺序表已满无法插入!"<<endl;
exit(0);
}
if(pos<0||pos>size) //当pos等于size时表示插入在最后
{
cout<<"参数pos越界出错!"<<endl;
exit(0);
}
//从后向前把前一个元素迁移到后一个元素位置直到存储位置pos为止
for (i=size; i>pos; i--) data[i]=data[i-1];
data[pos]=item; //在pos位置插入item
size++;
}
//删除指定位置pos上的数据元素并返回
DataType SeqList::Delete(const int pos)
{
if(size==0)
{
cout<<"顺序表已空无元素可删!"<<endl;
exit(0);
}
if(pos<0||pos>size-1)//删除元素序号必须在0到size-1之间
{
cout<<"参数pos越界出错!"<<endl;
exit(0);
}
DataType temp=data[pos];
//从pos至size-2逐个元素左移,data[size-1]移入date[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 + -