⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seqlist.h

📁 数据结构头文件源代码
💻 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 + -