C语言顺序表基本函数.doc

C语言顺序表基本函数.doc

ID:50368513

大小:32.50 KB

页数:9页

时间:2020-03-08

C语言顺序表基本函数.doc_第1页
C语言顺序表基本函数.doc_第2页
C语言顺序表基本函数.doc_第3页
C语言顺序表基本函数.doc_第4页
C语言顺序表基本函数.doc_第5页
资源描述:

《C语言顺序表基本函数.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一.无空间限制顺序表1.宏定义:#include#include#defineOVERFLOW-2#defineOK1#defineTRUE1#defineERROR0#defineFALSE0#defineLIST_SEQLIST_INIT_SIZE100#defineLIST_SEQLIST_INCR_SIZE100#defineElemType****;2.结构体:typedefstruct{ElemType*elem;intlast;intlength;}Seqlist;3.基本函数:intInitlist_Seql

2、ist_1(Seqlist*L)/*初始化链表:1.先决条件:无;2.函数作用:开辟空间并用elem记住首地址,和初始化链表相关数据last,length。*/{(*L).elem=(ElemType*)malloc(LIST_SEQLIST_INIT_SIZE*sizeof(ElemType));if(!(*L).elem)returnOVERFLOW;(*L).length=LIST_SEQLIST_INIT_SIZE;(*L).last=0;returnOK;}intInitlist_Seqlist_2(Seqlist*L)/*初始化链表:1.先决条件:初

3、始化结构体数据;2.函数作用:删除已有链表,重新开辟空间并用elem记住首地址,和初始化链表相关数据last,length。*/{if((*L).elem)free((*L).elem);(*L).elem=(ElemType*)malloc(LIST_SEQLIST_INIT_SIZE*sizeof(ElemType));if(!(*L).elem)returnOVERFLOW;(*L).length=LIST_SEQLIST_INIT_SIZE;(*L).last=0;returnOK;}intInsert_Seqlist(Seqlist*L)/*插入数据e

4、到链表上:1.先决条件:初始化结构体数据,原数据按递增顺序排列或无数据;2.函数作用:不受空间限制地插入数据,插入后数据仍按递增顺序排列。*/{ElemTypee,*p,*q;intcount;printf("请输入数据:");scanf("%d",&e);//会因ElemType不同而不同if((*L).last>=(*L).length){(*L).elem=(ElemType*)realloc((*L).elem,(LIST_SEQLIST_INIT_SIZE+LIST_SEQLIST_INCR_SIZE)*sizeof(ElemType));if((*L

5、).elem==NULL)returnOVERFLOW;else(*L).length+=LIST_SEQLIST_INCR_SIZE;}for(p=(*L).elem,count=(*L).last;e>*p&&count>0;p++,count--);q=p;for(p=(*L).elem+((*L).last);p!=q;p--)*p=*(p-1);*p=e;(*L).last++;returnOK;}intDelete_Seqlist(Seqlist*L,)/*删除函数:1.先决条件:无空间限制顺序表;2.函数作用:从顺序表中删除自第i个元素开始的k个元

6、素。*/{ElemType*p,*q;inti,k;printf("将从顺序表中删除自第i个元素开始的k个元素,请输入i,k(以空格间隔):");scanf("%d%d",&i,&k);getchar();if(i<1

7、

8、i>(*L).last){printf("删除起点越界!");returnERROR;}if(k<0){printf("删除个数有误!");returnERROR;}if(i+k-1>(*L).last){printf("删除个数越界!");returnERROR;}for(p=(*L).elem+i-1,q=p+k;q!=(*

9、L).elem+(*L).last;q++,p++)*p=*q;(*L).last=(*L).last-k;returnOK;}intPrintf_Seqlist(Seqlist*L)/*显示函数:1.先决条件:无空间限制顺序表;2.函数作用:输出顺序链表的各个数据。*/{ElemType*p;intcount=0;for(p=(*L).elem;p<(*L).elem+(*L).last;p++){printf("%d",*p);/*这里的”%d”要因具体的情况而定*/count++;if(count%10==0)printf("");}printf("

10、n");returnOK

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

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

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