线性表顺序存储结构的操作
2017-06-28 10:11
267 查看
刚刚开始接触数据结构和算法,写写相关程序练习一下。今天学习了线性表的顺序存储结构,涉及到线性表的创建,初始化,获取元素,插入元素的操作,后续操作随后记录。
/************************************************ 线性表的顺序存储结构,使用一维数组实现 ************************************************/ #include <iostream> using namespace std; //创建线性表 const int MaxSize=20; typedef int elemType; typedef int status; typedef struct { elemType data[MaxSize]; int length; }sqList; //操作2:获取线性表第i个位置的元素 status GetElem(sqList L,int i,elemType* e); //操作3:线性表第i个位置插入新元素 status InsertElem(sqList* L,int i,elemType e); //操作4:删除线性表第i个位置元素 status DeleteElem(sqList* L,int i,elemType* e); int main() { sqList L;//线性表L L.length=5;//线性表L长度为6 //操作1:初始化线性表 int i=0; while(i<L.length) { cin>>L.data[i]; i++; } cout<<"输入完毕\n"; //操作2:获取线性表第i个位置的元素 int num1,num2,num3; elemType* pt=new elemType; cin>>num1; cout<<"获取线性表第"<<num1<<"个元素\n"; GetElem(L,num1,pt); cout<<"线性表第"<<num1<<"个元素:"<<*pt<<endl; //操作3:线性表第i个位置插入新元素 elemType eInsert; cin>>num2>>eInsert; cout<<"插入到线性表第"<<num2<<"个位置\n"; InsertElem(&L,num2,eInsert); for (int i=0;i<L.length;i++) { cout<<"现在线性表"<<i+1<<"的位置为:"<<L.data[i]<<endl; } //操作4:删除线性表第i个位置元素 elemType* eDelete=new elemType; cin>>num3; cout<<"删除线性表第"<<num3<<"个位置元素\n"; DeleteElem(&L,num3,eDelete); cout<<"删除的元素是:"<<*eDelete<<endl; for (int i=0;i<L.length;i++) { cout<<"现在线性表"<<i+1<<"的位置为:"<<L.data[i]<<endl; } return 0; } //操作2:获取线性表第i个位置的元素 status GetElem(sqList L,int i,elemType* e) { if (L.length==0 || i>L.length) return 0; *e=L.data[i-1]; return 1; } //操作3:线性表第i个位置插入新元素 status InsertElem(sqList* L,int i,elemType e) { int k; if (L->length==MaxSize)//线性表已满 return 0; else { if (i<1 || i>L->length+1) return 0; else{ if (i<=L->length) { for (k=L->length-1;k>=i-1;k--) { L->data[k+1]=L->data[k]; } } } } L->data[i-1]=e; L->length++; return 1; } //操作4:删除线性表第i个位置元素 status DeleteElem(sqList* L,int i,elemType* e) { if (i<1 || i>L->length) return 0; *e=L->data[i-1]; for (int k=i;k<L->length;k++) { L->data[k-1]=L->data[k]; } L->length--; return 1; }
相关文章推荐
- 线性表顺序存储结构的操作
- 顺序存储结构线性表基本操作 纯C语言实现
- 一.顺序存储结构线性表基本操作实现算法
- 线性表(顺序存储结构)的基本操作
- 线性表顺序存储结构的一般操作
- 试用多态实现线性表(队列,串,堆栈),要求具备线性表的基本操作:插入,删除,测长等。
- 顺序存储结构的线性表
- 线性表操作
- 栈的顺序存储结构与操作
- 利用线性表进行UPDATE操作
- 合并两个顺序存储结构的线性表...
- 第06话:判断线性表是否为空与置空操作
- 《线性表的顺序存储结构》
- 数据结构:线性表删除操作的php和js实现
- 一个简单的线性表操作
- 编译原理:实验二、集合与线性表操作
- 数据结构--线性表操作
- bo2-1.cpp 顺序表示的线性表(存储结构由c2-1.h定义)的基本操作(12个)
- 队列的顺序存储结构与操作
- 线性表的顺序存储结构与操作