数据结构(C++版)——线性表顺序存储结构的实现

线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据结构,可以用一维数组来实现顺序存储结构。
描述这样一个数组需要三个属性,一个是数组本身,data[];一个是线性表的最大存储容量,即在内存中给这块内容安排多大的空间;还有一个是线性表的当前长度。
顺序表的存取很简单,只需要读取位置对应的数组值即可,需要注意的是线性表是从1开始的,数组是从0开始的,读取第i个位置的值实际读取的是data[i-1];
顺序表的插入操作思路是:
若插入位置不合理,抛出异常;
从最后一个元素到第i个元素都往后移一位;
把要插入的数赋值给第i个元素;
表长加一;
顺序表的删除操作思路是:
若插入位置不合理,抛出异常;
若有需要,先读取要删除元素的值;
删除位置的下一个元素到最后一个元素均向前移动一格;
表长减一;
实现代码:

#include
#include
#define maxsize 100//线性表的最大存储容量 
using namespace std;
class list
{
	public:
	list()
	{
		length=0;//线性表当前长度 
	}
	void init();//初始化线性表 
	void display();//输出线性表
	void getelem();//查找元素
	void insert();//插入元素
	void Delete();//删除元素 
	private:
	int length;//线性表的长度 
	int data[maxsize]; //线性表,顺序存储,最大值 
};
void list::init()
{
	data[0]=15;
	data[1]=5;
	data[2]=6;
	data[3]=8;
	length=4;
}
void list::display()
{
	cout<<"新数组为:";
	for(int i=0;i>n;
	if(n<1||n>length)
	{
		cout<<"error";
	}
	else cout<<"第"<>n;
	if(n<1||n>length)
	{
		cout<<"error";
	}
	cout<>e;
	cout<=n-1;i--)
	{
		data[i+1]=data[i];
	}
    data[n-1]=e;
    length++;    
}
void list::Delete()
{
	int n,e;
	cout<<"请输入要删除值的位置:";
	cin>>n;
	if(n<1||n>length)
	{
		cout<<"error";
	}
	for(int i=n-1;i<=length-1;i++)
	{
		data[i]=data[i+1];
	}
	length--;	
} 
int main()
{
	list list1;
	list1.init();
	list1.display();
	list1.getelem();
	list1.insert();
	list1.display();
	list1.Delete();
	list1.display(); 
	return 0;
}

你可能感兴趣的:(数据结构)