首页 数据结构顺序线性表的操作

数据结构顺序线性表的操作

举报
开通vip

数据结构顺序线性表的操作数据结构顺序线性表的操作#include<iostream>usingnamespacestd;#defineLIST_INIT_SIZE100//线性表存储空间的初始分配量#defineLISTINCREMENT10//线性表存储的分配增量#defineOK1#defineERROR0typedefintStatus;typedefstruct{int*elem;intlength;intlistsize;}SqList;StatusInitList_Sq(SqList&L)//创建线性表{i...

数据结构顺序线性表的操作
数据结构顺序线性 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 的操作#include<iostream>usingnamespacestd;#defineLIST_INIT_SIZE100//线性表存储空间的初始分配量#defineLISTINCREMENT10//线性表存储的分配增量#defineOK1#defineERROR0typedefintStatus;typedefstruct{int*elem;intlength;intlistsize;}SqList;StatusInitList_Sq(SqList&L)//创建线性表{intelem;L.elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int));if(!L.elem)exit(OVERFLOW);//存储分配失败L.length=0;//空表长度为0L.listsize=LIST_INIT_SIZE;//初始化容器容量int*p=L.elem;cout<<"创建线性表---请输入数字,按ctrl+z结束"<<endl;while(cin>>elem){*p=elem;++p;++L.length;}cin.clear();returnOK;}StatusListInsert_Sq(SqList&L,inti,inte){//在顺序线性表L中第i个位置之前插入元素e//i的合法值为1<=i<=ListLength_Sq(L)+1if(i<1||i>L.length+1){cout<<"插入位置超出范围"<<endl;returnERROR;//i值不合法}if(L.length>=L.listsize)//当前存储空间已满,增加分配{int*newbase;newbase=(int*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int));if(!newbase){cout<<"存储分配失败"<<endl;exit(OVERFLOW);//存储分配失败}newbase=L.elem;L.listsize+=LISTINCREMENT;//增加存储空间}int*q;q=&L.elem[i-1];for(int*p=&L.elem[L.length-1];p>=q;--p){*(p+1)=*p;}*q=e;++L.length;cout<<"插入成功"<<endl;returnOK;}StatusListDelete_Sq(SqList&L,inti,int&e){//在顺序线性表中删除第i个元素,并用e返回其值//i的合法性为1<=i<=ListLength_Sq(L)if(i<1||i>L.length){returnERROR;}//i值不合法int*p=&L.elem[i-1];//p为被删除元素的位置e=*p;//被删除元素的赋给eint*q=&L.elem[L.length-1];//表尾的元素for(++p;p<=q;p++){*(p-1)=*p;//被删除之后的元素左移}--L.length;//表长减1cout<<"删除了元素"<<e<<endl;returnOK;}StatusListDestory_Sq(SqList&L)//销毁线性表{free(L.elem);returnOK;}StatusListDisplay_Sq(SqListL)//显示线性表{int*p=&L.elem[0];int*q=&L.elem[L.length-1];inti=1;for(;p<=q;++p,++i){cout<<*p<<'\t';if(i%10==0)//每行输出10个数{cout<<endl;}}cout<<endl;returnOK;}intmain(){SqListL;charkey=0;intpos=0;//插入位置intvalue=0;//插入元素InitList_Sq(L);T:system("cls");cout<<"----------数据结构线性顺序表操作---------------"<<endl;cout<<"----------1.插入元素---------------------------"<<endl;cout<<"----------2.删除元素---------------------------"<<endl;cout<<"----------3.显示元素---------------------------"<<endl;cout<<"----------4.显示表长---------------------------"<<endl;cout<<"----------5.退出-------------------------------"<<endl;cout<<"-----------------------------------BY冰封飞飞"<<endl;cin>>key;switch(key){case'1':cout<<"请输入插入的位置"<<endl;cin>>pos;cout<<"请输入插入元素"<<endl;cin>>value;ListInsert_Sq(L,pos,value);break;case'2':cout<<"请输入删除位置"<<endl;cin>>pos;ListDelete_Sq(L,pos,value);break;case'3':ListDisplay_Sq(L);break;case'4':cout<<"线性表的长度为"<<L.length<<endl;break;case'5':ListDestory_Sq(L);return0;break;default:cout<<"输入超出范围"<<endl;break;}system("pause");gotoT;}
本文档为【数据结构顺序线性表的操作】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_014457
暂无简介~
格式:doc
大小:20KB
软件:Word
页数:0
分类:理学
上传时间:2017-12-08
浏览量:12