线性表顺序存储结构地11个基本操作函数

线性表顺序存储结构地11个基本操作函数

ID:47931525

大小:18.31 KB

页数:19页

时间:2019-11-06

线性表顺序存储结构地11个基本操作函数_第1页
线性表顺序存储结构地11个基本操作函数_第2页
线性表顺序存储结构地11个基本操作函数_第3页
线性表顺序存储结构地11个基本操作函数_第4页
线性表顺序存储结构地11个基本操作函数_第5页
资源描述:

《线性表顺序存储结构地11个基本操作函数》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、标准文案/*1.设计线性表顺序存储结构的11个基本操作函数,并编程实现之*/#include#include#include#defineLIST_INIT_SIZE100#defineLISTINCREMENT10typedefcharElemType;typedefstruct{ElemType*elem;intlength;intlistsize;}SqList;大全标准文案boolcompare(ElemTypep,ElemTypee){if(p==e)returntrue;elseretu

2、rnfalse;}voidInitList(SqList&L)//构造一个空的线性表L{L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem)exit(0);L.length=0;L.listsize=LIST_INIT_SIZE;}voidDestroyList(SqList&L)//销毁线性表L{大全标准文案free(L.elem);L.elem=NULL;if(L.elem)exit(0);L.length=0;}voidClearList(SqList&L)//将L

3、重置为空表{L.elem='';L.length=0;}boolListEmpty(SqList&L)//若L为空表,返回TRUE,否则FALSE{if(L.length==0)returntrue;elsereturnfalse;}intListLength(SqListL)//返回L中元素个数{大全标准文案returnL.length;}boolGetElem(SqListL,inti,ElemType&e)//用e返回数据中第i个元素的值{if(!L.length)returnfalse;elseif(i>L.length

4、

5、i<1)return

6、false;else{e=L.elem[i-1];returntrue;}}intLocateElem(SqListL,ElemTypee){inti=1;大全标准文案boolcmp=0;if(L.length==0)return0;else{while(i<=L.length&&!cmp){cmp=compare(L.elem[i-1],e);i++;}if(cmp)returni-1;elsereturn0;}}intPriorElem(SqListL,ElemTypecur_e,ElemType&pre_e)//若cur_e是L的数据元素,且不是第一

7、个,用pre_e返回它的前驱。否则操作失败{inti=LocateElem(L,cur_e);大全标准文案if(i==0)printf("不存在您定位的元素!");elseif(i==1)printf("您指定的是首元素,无前驱!");elsepre_e=L.elem[i-2];returni;}intNextElem(SqListL,ElemTypecur_e,ElemType&next_e){inti=LocateElem(L,cur_e);if(i==0)printf("不存在您定位的元素!");elseif(i==L.length)pr

8、intf("您指定的是末元素,无后继!");next_e=L.elem[i];returni;}boolListInsert(SqList&L,inti,ElemTypee)//在L的第i个位置之前插入新的数据e,L的长度增加1大全标准文案{ElemType*newbase,*p,*q;if(i<1

9、

10、i>L.length+1)returnfalse;else{if(L.length>=L.listsize){newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(Elem

11、Type));if(!newbase)exit(0);L.elem=newbase;L.listsize+=LISTINCREMENT;}q=&(L.elem[i-1]);for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;*q=e;L.elem[L.length+1]='';大全标准文案++L.length;returntrue;}}boolListDelete(SqList&L,inti,ElemType&e)//删除第i个元素,并用e返回,长度减1{ElemType*p,*q;if(i<1

12、

13、i>L.le

14、ngth)returnfalse;else{p=&(L.elem[

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

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

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