数据结构经典算法C语言版.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构经典算法C语言版

//插入排序法 void InsertSort() { int s[100]; int n,m,j,i=0,temp1,temp2; printf(请输入待排序的元素个数:); scanf(%d,n); printf(请输入原序列:); for (i=0; in; i++) { scanf(%d,s[i]); } printf(请输入待插入的数:); scanf(%d,m); if (ms[n-1]); s[n]=m; for (i=0; in; i++) { if (s[i]m) { temp1=s[i]; s[i]=m; for (j=i+1; jn+1; ++j) { temp2=s[j]; s[j]=temp1; temp1=temp2; } break; } } printf(排序后:); for(i=0;in+1;i++) { printf(%4d,s[i]); } printf(\n); } //堆排序 static a[8] = {0,25,4,36,1,60,10,58,}; int count=1; void adjust(int i,int n) { int j,k,r,done=0; k = r = a[i]; j = 2*i; while((j=n)(done==0)) { if(jn) { if(a[j]a[j+1]) j++; } if(k=a[j]) done = 1; else { a[j/2] = a[j]; j = 2* j; } } a[j/2] = r; } void heap(int n) { int i,j,t; for(i =n/2;i0;i--) adjust(i,n); printf(\n初始化成堆=== ); for(i = 1;i 8;i++) printf(%5d,a[i]); for(i = n-1;i0;i--) { t = a[i+1]; a[i+1] = a[1]; a[1] = t; adjust(1,i); printf(\n第%2d步操作结果===,count++); for(j = 1;j8;j++) printf(%5d,a[j]); } } void HeapSort() { int i; printf(源数据为:); for(i = 1;i8;i++) printf(%5d,a[i]); heap(7); printf(\n排序后的数据为:); for(i = 1;i8;i++) printf(%5d,a[i]); printf(\n); } //堆栈的基本应用 int *p; int *tos; int *bos; /*添加一个数据放到堆栈对顶端*/ void push(int i) { if(p bos) { printf(堆栈以满\n); return; } *p = i; p++; } /*丛堆栈顶端取出一个数据*/ int pop(void) { p--; if(p tos) { printf(堆栈下溢\n); return 0; } return *p; } void StackMain() { int a,b; char s[80]; p = (int *)malloc(Max*sizeof(int)); if(!p) { printf(分配内存失败);

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档