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

📄 seqlist.h

📁 里面包含各种数据结构方面的知识,如链表,树,图等 含有vc代码
💻 H
字号:
class SeqList
{
protected:
	DataType *list;					//数组
	int maxSize;
	int size;								//数组的当前元素个数
public:
	SeqList(int max=0);		      		//构造函数
	~SeqList(void);		      				//析构函数

	int ListSize(void) const;				//返回元素个数
	void Insert(const DataType& item, int i);//在位置i前插入元素item
	DataType Delete(const int i);			//删除位置i的元素并返回
	DataType GetData(int i) const;			//取位置i的元素并返回

};

SeqList::SeqList(int max)				//构造函数
{
	maxSize = max;
	size = 0;
	list = new DataType[maxSize];
}

SeqList::~SeqList(void)//析构函数
{
	delete []list;
}							

int SeqList::ListSize(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 + -