C_数据结构_顺序表_串处理_第1页
C_数据结构_顺序表_串处理_第2页
C_数据结构_顺序表_串处理_第3页
C_数据结构_顺序表_串处理_第4页
C_数据结构_顺序表_串处理_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、顺序存储串处理程序如下:#include<stdio.h># include<stdlib.h> # include<string.h>#define len sizeof(sqlist)#define n 500#define m 20static int x=0;/the list be initialized ?typedef structchar datelnj; int length;jsqlist;void menu()putchar(lo); printf(httt printf(ntttinit: printf(htttdestroy: pr

2、intf(htttempty: printf("tttlength: printf("tttdisp_l: printf("tttget_e: printf("tttdelete_i: printf("tttlocate_e: printf(htttinsert_e: printf("tttexit:/menu主菜单nn");初始化表。n“);摧毁表。n”);是空表?。);表长。nh);输出表。nn);得到数据。岸);删除数据。f);查找数据。n“);插入数据。n”);退出。nh);printf(”请输入对应指令:n“);

3、int find_i(sqlist *l,int i)int j,n=l;if(i=l) return 0;for(j=0;j<l->length;j+)if(l->datej=7) n+; if(n=i) break;return -1;elsereturn j+1;void initlist(sqlist *&l)l=(sqlist*)malloc(len);l>da 0='0;l->length=0;printfc*已初始化表! nn);void destroylist(sqlist *&l)free(l);x=0;printf(n

4、已摧毁表! n”);int listempty(sqlist *l)if(l->length=o) return 1;elseretui*n 0;int listlength(sqlist *l)int n=0;if(l->length=o) return 0; for(int i=o;i<l->length;i+) if(l->datei=-,') n+; return n;int displist(sqlist *l)int i,n=0;if(l->length=o)printf(h此表为空! ”); return 0;1 for(i=0;i&l

5、t;l->length;i+)if(l->datei=7)n+; printf(,ttn);/displist/initlist/destroylist/emptyif(n=5) putchar( 10); continue;/tabprintf(“c”,l>datei); printf("n 表长为:%dt",n);int getelem(sqlist *l ,int i,char *e)int k,j;k=i;i=find_i(l,i);if(i=-1 |i=l->length)printf(“未找到该位置!操作失败! “);ret uni 0;

6、for(j=0;l->datei !='j+)ej=l->datei+;eu=w;printfc'list %d =%s”,k,e);int listdelete(sqlist *l,int i,char *e)int n,m,j;m=i;n=i=find_i(l,i);if(i=-l)printf(“未找到该位置!删除失败! “);ret uni 0;for(j=0;l->daten!=','j+) ej=l->daten+;printf(nlist【%d =%sn,m,e);m=n-i+l;while(i<l->lengt

7、h)l->datei+4-=l->date+n;1printf("n该元素已删除! “);l->length-=m;int locateelem(sqlist *l,char *e)char comparemj;int j=o,i=o,n=o;while(l->length!=o&&j<l->leng(h)i 二 0;while(l->datej !=v) comparei+=l->datej+;comparei二'0'n+;if(strcmp(compare,e)=0) break;j+;if(j<

8、;l->length)retuni n;return 0;1int listlnsert(sqlist *&l,int i,char *e)/listinserti=find_i(l4);/change iif(i=-l)printf("未找到该位置! return 0;1int len,j=0,n=0;len=l->le ngth; while(ej+j) n+; for(int k=len+n;len>=i;k-) l->datek=l->datelen; for(j=0;j<n;j+,i+)l->datefi=efjl;l-&g

9、t;datei=','l->length+=n+1; printf(“己经插入表! nh); retui*n 0;int select()插入失败! “);/datalength of the new data /get the place for the new data/insertdataint i;char em;char choosemj;static sqlist *l;while(l)menu();scanf(h%s",choose);if(strcnip(choose/,exitn)=0) break;if(strcmp(choose,minit

10、")=0|x=l)x=l;switch(strcmp(choose/init,)=0?l:strcmp(choose/destroyn)=0?2:strcmp(choose,nemptyh) =0?3:strcmp(choose/,lengthm)=0?4:strcmp(choose/rdisp_r,)=0?5:strcmp(choose/get_en)=0? 6:strcmp(choose/ldelete_i',)=0?7:strcmp(choose,locate_e,)=0?8:strcmp(choose/,insert_en)=0 ?9:10)case l:initli

11、st(l);break;case 2:destroylist(l);break;case 3:if(listempty(l)printf(“该表为空表! ”);elseprintfc该表不为空! ”);break;case 4:printf(m%d",listlength(l);break;case 5:displist(l);break;case 6:while(l)print”请输入 i:”);scanf(” d“,&i);if(i>0) break;printf(“ .输入有误:“i”必须大于0请重新输入八nn“);getelem(l,i,e);break;cas

12、e 7:while(l)printfc1 请输入 i:”);scanf(” d",&i);if(i>0) break;printf(".输入有误:"i”必须大于0请重新输入!nn");listdelete(l,i,e);break;case 8:printf(°请输入 e:nh);scanf(” s”,e);if(locateelem(l,e) !=0)printf("n 该元素位于第 %d 个。n",locateelem(l,e); break;elsecase 9:printf(hn未找到该位置。nfl);

13、 break;while(l)printf(*谓输入 i:”);scanf(” d“,&i);if(i>0) break;printf(“ .输入有误:“i”必须大于0请重新输入!nnn);1printfc谓输入 e:n°);scanf(m%s,r,e);listinsert(l,i,e);break;case 10:printf("输入有误,请重新输入:");break;elseprintf(hn警告:未初始化表! nnh);if(strcmp(choose,hexit")=0) return 1;return 0;void main()

14、printfcvn't't*顺序存储串处理*nntt 测试菜单:nnttt 欢迎使用传奇版线性表);while(l)if(select()=l) break; /exit运行如下:t5 xc« c:wind0wssystem32cmd.exe请输入对应指令: in it包初始化表!表。? on 化表表。麥数数数。 始毁空长岀到除找入岀 初摧是表聾删查藝j|页序仔诸 串 处理m*m*m*m*m*m*测试菜单:欢迎使用传奇版线性表主菜单in it: destroy: empty: length: disp_l: get.e: delete_i locate_e insert_e exit:主菜单谊输入对应指令= insert_e oai=i 诒输入e:in it:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论