数据结构之线性表的所有操作.docx

数据结构之线性表的所有操作.docx

ID:52815991

大小:15.96 KB

页数:5页

时间:2020-03-30

数据结构之线性表的所有操作.docx_第1页
数据结构之线性表的所有操作.docx_第2页
数据结构之线性表的所有操作.docx_第3页
数据结构之线性表的所有操作.docx_第4页
数据结构之线性表的所有操作.docx_第5页
资源描述:

《数据结构之线性表的所有操作.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#include#defineList_init_size100//线性表的初始化容量设置为100#defineList_increase_size10//线性表的增量#defineOVERFLOW-1//返回OVERFLOW表示下标越界或者内存分配失败#defineOK0//表示函数成功返回typedefintElemType;typedefElemTypeET;typedefstruct{ET*data;//用来储存线性表的基址intsize;//用来记录线性表的容量intlength;//用来储存线性表

2、的当前元素个数}AdtList;intInitList(AdtList&L){//初始化线性表,传入的是线性表的引用L.data=(ET*)malloc(List_init_size*sizeof(ET));if(L.data==NULL){returnOVERFLOW;//内存分配失败}L.length=0;L.size=List_init_size;returnOK;}intDestroyList(AdtList&L){//销毁线性表,传入参数L的引用if(L.data)//如果L.data不为NULL,即线性表存在free(L.data);//释放空间re

3、turnOK;}intclearList(AdtList&L){//清空线性表if(L.data)//如果线性表存在L.length=0;//置为空表return0;}boolListEmpty(AdtList&L){//判断线性表时候为空if(L.data){//如果线性表存在if(L.length==0)returntrue;//如果当前元素个数为0说明为空表elsereturnfalse;}returnfalse;}intGetElem(AdtListL,inti,ET&e){//用e返回线性表L的第i个元素e=*(L.data+i-1);returnOK

4、;}intcompare(ETa,ET*b){//compare函数,用来判断a和b是否相等if(a==*b)return1;//如果相等则返回-1elsereturn0;}intLocateElem(AdtListL,ETe,int(*compare)(ET,ET*)){inti;for(i=0;i

5、-1elsereturni;//如果找到了的话就返回下标}intPriorElem(AdtListL,ETcur_e,ET&pre_e){//查找e的前趋if(L.data){if(LocateElem(L,cur_e,compare)&&LocateElem(L,cur_e,compare)!=0){//如果e是L中的元素,并且e对应的下标不为0pre_e=*(L.data+LocateElem(L,cur_e,compare)-1);returnOK;}elsereturn-1;}}intNextElem(AdtListL,ETcur_e,ET&next_e

6、){if(L.data){if(LocateElem(L,cur_e,compare)&&LocateElem(L,cur_e,compare)!=L.length-1){//如果e是L中的元素,并且e对应的下标不为最后一个next_e=*(L.data+LocateElem(L,cur_e,compare)+1);returnOK;}elsereturn-1;}}intList_insert(AdtList&L,inti,ETe){//在线性表的第i个位置之前插入e元素if(i<1

7、

8、i>L.length+1)return-1;//i值不合法if(L.leng

9、th>=L.size){ET*p;p=(ET*)realloc(L.data,(L.size+List_increase_size)*sizeof(ET));if(p==NULL)exit(-1);L.data=p;L.size=L.size+List_increase_size;}intflag=i-1;//想要插入e的位置for(intj=L.length-1;j>=flag;j--){L.data[j+1]=L.data[j];}*(L.data+flag)=e;++L.length;return1;}intListdelete(AdtList&L,int

10、i,ET&e){if(L

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。