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

📄 seqlist.h

📁 里面包含各种数据结构方面的知识,如链表,树,图等 含有vc代码
💻 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 + -