严蔚敏版数据结构所有算法代码

严蔚敏版数据结构所有算法代码

ID:1265158

大小:274.50 KB

页数:74页

时间:2017-11-09

严蔚敏版数据结构所有算法代码_第1页
严蔚敏版数据结构所有算法代码_第2页
严蔚敏版数据结构所有算法代码_第3页
严蔚敏版数据结构所有算法代码_第4页
严蔚敏版数据结构所有算法代码_第5页
资源描述:

《严蔚敏版数据结构所有算法代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、严蔚敏版数据结构所有算法代码------------------------线性数据结构-----------------------------2013年7月//线性表、链表//栈、队列//数组、广义表//串-------------------------线性表----------------------typedefstruct{charname[20];//注意如果应用指针的形式//在初始化每个结点时一定要先为结点中的每个变量开辟内存空间charsex;charaddr[100];unsignedintage;charphonenum[20]

2、;}node;//结点描述typedefstruct{node*p;intlength;//当前顺序表长度intlistsize;//当前分配的线性表长度}list;//线性表描述listL;//定义一个线性表intinitlist(list&l)//构造一个空的线性表{l.p=(node*)malloc(LIST_INIT_SIZE*sizeof(node));if(!(l.p))exit(1);l.length=0;l.listsize=LIST_INIT_SIZE;returntrue;}voiddestroylist(list&l)//销毁线

3、性表操作{if(l.p!=NULL){free(l.p);printf("销毁成功!");}elseprintf("线性表不存在!");}intclearlist(list&l)//将线性表置空操作{if(l.p==NULL){printf("线性表不存在!");returnfalse;}else{free(l.p);l.p=(node*)malloc(l.listsize*sizeof(node));l.length=0;}returntrue;}intlistempty(list&l)//判断线性表是否为空表{if(l.p==NULL

4、)returntrue;elsereturnfalse;}intgetelem(list&l,inti,node&e)//用e返回表中第i个数据元素{if(l.p==NULL)returnfalse;elsee=l.p[i-1];returntrue;}intpriorelem(list&l,inti,node&pre_e)//得到第i个元素的前驱元素{if(i==0

5、

6、l.p==NULL)returnfalse;elsepre_e=l.p[i-1];returntrue;}intnextelem(list&l,inti,node&next_e)//

7、得到表中第i个元素的后继元素{if(i>=l.length

8、

9、l.p==NULL)returnfalse;elsenext_e=l.p[i+1];returntrue;}intinsertlist(list&l,inti,node&e)//将元素e插入到表l中第i个元素的后面{node*q,*k;if(i<1

10、

11、i>l.length+1)returnfalse;if(l.length>=l.listsize){l.p=(node*)realloc(l.p,(l.listsize+LISTINCREMENT)*sizeof(node));if(!l.p

12、)exit(1);l.listsize+=LISTINCREMENT;}k=&l.p[i-1];for(q=&l.p[l.length-1];q>k;q--)*(q+1)=*q;*k=e;l.length++;returntrue;}intdeletelist(list&l,inti,node&e)//删除表中第i个元素并用e返回其值{node*q;intj=i-1;if(i<1

13、

14、i>l.length)returnfalse;e=l.p[i-1];for(q=&l.p[i-1];j

15、--;returntrue;}voidmergerlist(listla,listlb,list&lc)//归并两个按非递减排列的线性表{intla_len,lb_len,i=1,j=1,k=0;nodeai,bj;la_len=la.length;lb_len=lb.length;while(i<=la_len&&j<=lb_len){getelem(la,i,ai);getelem(lb,j,bj);if(ai.a<=bj.a){insertlist(lc,++k,ai);i++;}else{insertlist(lc,++k,bj);j++;}

16、}while(i<=la_len){getelem(la,i,ai);insertlist(lc,++k,a

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

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

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