线性表的使用.doc_第1页
线性表的使用.doc_第2页
线性表的使用.doc_第3页
线性表的使用.doc_第4页
线性表的使用.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

#includestdio.h#includestdlib.hvoid input(int *v,int *n)int i; printf(npls input %d number to list,*n); for(i=0;i*n;i+) scanf(%d,v+i);void output(int *v,int *n)int j;printf(nthis is list:n);for(j=0;j*n-1) i=*n+1;if(i=i;j-) vj=vj-1;vi-1=b;*n+=1;int serch(int v,int n,int x) int k;k=0;while(kn)&(vk!=x) k+=1;if(k=n) k=-1;return (k+1);int bserch(int v,int n,int x)int i,j,k;i=1;j=n; while(ix) j=k-1;else i=k+1;if(ij) k=-1;return (k+1); void desl(int *v,int m,int *n,int i)int j;if(*n=0) printf(underflown);return;if(i*n) printf(not this element in the list:n);return;for(j=i;j=*n-1;j+)vj-1=vj;*n=*n-1;void xx() printf(n); printf(n); printf(n); printf( * * * * n); printf( * * n); printf( n); printf( n); printf( n); printf( n); printf( THANK YOU ! n); void yy() printf(n);printf( .欢迎进入小程序测试. n); printf(n);printf( * 功能: *n);printf( * 1 申请空间: *n);printf( * 2 建表: *n);printf( * 3 排序: *n);printf( * 4 查找: *n);printf( * 5 插入: *n);printf( * 6 删除: *n);printf( * 7 输出: *n); void bubsort(int *v,int n) int m,j,i,k=0; int d; m=n-1; while(km) /子表为空 j=m-1;m=0; for(i=k;ivi+1) d=vi;vi=vi+1;vi+1=d;m=i; j=k+1;k=0; for(i=m;i=j;i-) /从后往前 if(vi-1vi) d=vi;vi=vi-1;vi-1=d;k=i; return; void insort(int *p,int n) /插入排序int j,k,t;for(j=1;j=0)&(pkt) pk+1=pk;k=k-1;pk+1=t;return;void shlsort(int *p,int n) /希尔排序int h,j,i,t;h=n/2;while(h0)for(j=h;j=0)&(pit)pi+h=pi;i=i-h;pi+h=t;h=h/2;return;int split(int *p,int m,int n) int i,j,k,u,t;i=m;j=n;k=(i+j)/2;if(pi=pj)&(pj=pk) u=j; else if(pi=pk)&(pk=pj) u=k; else u=i; t=pu; pu=pi;while (i!=j)while (i=t) j-=1; if(ij) pi=pj;i+=1;while(ij)&(pi=t) i+=1;if(im)i=split(p,m,n); qksort1(p,m,i-1); qksort1(p,i+1,n);return;void main() /主函数 int *v=NULL,*n=NULL,m,i,b,h,x,t,y,s,a,hh,bb; while(9)yy();printf( 请输入你的选择: );scanf(%d,&hh);switch (hh)case 1: printf(n 请输入空间大小 : m:); scanf(%d,&m); n=(int *)malloc(m*sizeof(int); v=initsl(m,n); printf(n 空间申请完毕,谢谢使用! :); system(pause); system(cls); break;case 2: printf( 请输入元素总个数 :n:); scanf(%d,n); while(76) if(*nm) printf(n 空间不足,请重新输入,谢谢! :); scanf(%d,n); else break; input(v,n); printf(n 建表完成,谢谢使用! ); system(pause); system(cls); break;case 3: printf(n 现在进行排序 ); printf(n ); printf(n 冒泡请输: 1 ); printf(n 快速请输: 2 ); printf(n 插入请输: 3 ); printf(n 希尔请输: 4 ); printf(n 请输入你的选择 :); printf(n ); scanf(%d,&s); switch (s)case 1: bubsort(v,*n); break; case 2: qksort1(v,m,*n); break; case 3: insort(v,*n); break; case 4: shlsort(v,*n); break; printf( 排序完成,谢谢使用! n); system(pause); system(cls); break; case 4: printf(是否进行查找?n); printf(YES请输: 1 :no请输 2n); scanf(%d,&a); switch (a)case 1: printf(现在开始查找:n); printf(input 查找元素 x:n ); scanf(%d,&x); printf(请选择查找算法:n); printf(顺序查找请输 1:,对分查找请输 2:n); scanf(%d,&t); switch (t) case 1: y=serch(v,*n,x); break; case 2: y=bserch(v,*n,x); break; if(y=0) printf(.NO.没有啊!n); else printf(.YES.n); printf(在表中第%d位置上n,y); printf(.OK.n); break; case 2: ; break; system(pause); system(cls); break;case 5: printf(现在进行插入n); printf(n 请输入插入位置:i,及插入元素:b ); scanf(%d%d,&i,&b); insl(v,m,n,i,b); printf( 插入完成,谢谢使用! n); system(pause); system(cls); break;case 6: printf( 现在进行删除 n); printf( 请输入删除元素: hn); scanf(%d,&h); desl(v,m,n,serch(v,*n,h); printf( 删除完成,谢谢使用! n); system(pause); system(cls); break;case 7: output(v,n); system(pause); system(cls); break;default : printf(n 请输入指定的功能,谢谢! ); system(paus

温馨提示

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

评论

0/150

提交评论