数据结构--最短路径

上传人:m**** 文档编号:488436765 上传时间:2022-09-24 格式:DOCX 页数:15 大小:181.88KB
返回 下载 相关 举报
数据结构--最短路径_第1页
第1页 / 共15页
数据结构--最短路径_第2页
第2页 / 共15页
数据结构--最短路径_第3页
第3页 / 共15页
数据结构--最短路径_第4页
第4页 / 共15页
数据结构--最短路径_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数据结构--最短路径》由会员分享,可在线阅读,更多相关《数据结构--最短路径(15页珍藏版)》请在金锄头文库上搜索。

1、江南大学物联网工程学院上机报告课程名称数据结构上机名称 排序上机日期2013- 5-22班 级 计科1203姓 名 汪俊学号 1030412314上机报告要求1.上机名称2.上机要求3.上机环境4.程序清单(写明运行结果)5.上机体会1. 上机名称排序,实验52. 上机要求调试实验一,补充实验2主函数,完成实验33. 上机环境Visual C+ 6.04. 程序清单(写明运行结果)一、#include#define N 10#define FALSE 0#define TRUE 1typedef int KeyType;typedef char InfoType;typedef structK

2、eyType key;InfoType otherinfo;RecType;typedef RecType SeqlistN+1;int m,num; /全局变量m存储输出的是第几趟结果,num存储递归调用的次数Seqlist R;void Insertsort();void Bubblesort();void Selectsort();void main()Seqlist S; int i;char ch1,ch2;printf(-请输入10个待排序的数据:(每两个数据间用空格隔开)n);for(i=1;i=N;i+)scanf(%d”,&Si.key);ch1=y;while(ch1=y|

3、ch1=Y)printf(* 菜单 *n);printf(-请选择下列操作:n);printf(1更新待排序数据n);printf(2直接插入排序n);printf(3冒泡排序n);printf(4直接选择排序n);printf(5退出n);printf(-请选择操作类别:n”);scanf(n%c”,&ch2);switch(ch2)case 1:printf(请输入更新待排序数据:n);for(i=1;i=N;i+)scanf(%d”,&Si.key);break;case 2:printf(请输入要输出第几趟排序结果:n);scanf(%d”,&m);for(i=1;i=N;i+)Ri.

4、key=Si.key;Insertsort();break;case 3:printf(请输入要输出第几趟排序结果:n);scanf(%d”,&m);for(i=1;i=N;i+)Ri.key=Si.key;Bubblesort();break;case 4:printf(请输入要输出第几趟排序结果:n);scanf(%d”,&m);for(i=1;i=N;i+)Ri.key=Si.key;Selectsort();break;case 5:ch1=n;break;default:ch1=n;void Insertsort()int i,j,k;for(i=2;i=N;i+)if(Ri.key

5、Ri-1.key)R0=Ri;j=i-1;while(R0.keyRj.key)/*从右向左在有序区R1.i-1中查找Ri的插入位置*/Rj+1=Rj;j-;Rj+1=R0;if(i-1=m)printf(第d趟的结果是:n,m);for(k=1;k=N;k+)printf(%5d”,Rk.key);printf(n);printf(请输入还想输出第几趟结果,不想输出时请输入0:n); scanf(%d”,&m);if(m!=0)printf(-最终排序结果是:n);for(k=1;k=N;k+)printf(%5d”,Rk.key);printf(n);void Bubblesort()/自

6、下向上int i,j,k;int exchange;for(i=1;i=i;j-)if(Rj+1.keyRj.key)R0=Rj+1;Rj+1=Rj;Rj=R0;exchange=TRUE;if(i=m)printf(第d趟的结果是:n,m);for(k=1;k=N;k+)printf(%5d”,Rk.key);printf(n);printf(请输入还想输出第几趟结果,不想输出时请输入0:n); scanf(%d”,&m);if(!exchange)ll(m=0) break;if(m!=0)printf(-最终排序结果是:n);for(k=1;k=N;k+)printf(%5d”,Rk.k

7、ey);printf(n);void Selectsort()int i,j,k,h;for(i=1;iN;i+)h=i;for(j=i+1;j=N;j+)if(Rj.keyRh.key)h=j;if(h!=i)R0=Ri;Ri=Rh;Rh=R0;if(i=m)printf(第d趟的结果是:n,m);for(k=1;k=N;k+)printf(%5d”,Rk.key);printf(n);printf(请输入还想输出第几趟结果,不想输出时请输入0:n); scanf(%d”,&m);if(m!=0)printf(-最终排序结果是:n);for(k=1;k=N;k+)printf(%5d”,Rk

8、.key);printf(n);:斶I据结构实髓E h g itDe bugl.exe,请输入要输出第几趟排序结果二蠢趟的结果是二12345678 9345423请输入还想输出第几迪结果,不想输出时请输X: 重3趟的结果是:123456789345423请输入还想输出第几幽结果,不想输出时请输Xa:4第4趟的结果是二123645789345423请输入还想输出第几趟结果,不想输出时请输Xa=1最终排序结果是二123678234554 934H H H菜申 XX拜拜拜拜拜拜拜拜请选择下列蕖底3 三融斐二 :二二富董靠府二二二 请选择操作类别二#include#define N 4#define

9、false 0#define ture 1typedef int keytype;typedef char infotype;typedef structkeytype key;infotype otherinfo;rectype;typedef rectype seqlistN+1;int m,num;seqlist R;void quicksort(seqlist &R ,int s,int t)int i=s,j=t;if(ij)R0=Ri;dowhile(i=R0.key)卜;if(ij)Ri=Rj;i+;while(ij&Ri.key=R0.key) i+;if(ij)Rj=Ri;j

10、-;while(i0)for(i=gap;i=1&R0.keyRj.key) Rj+gap=Rj;j=j-gap;Rj+gap=R0;j=j-gap;gap=gap/2;void sift(seqlist &R ,int v,int n)int i,j;i=v;j=2*i;R0=Ri;while(j=n)if(jn&Rj.keyRj+1.key) j+;if(R0.key=1;i-)sift(R,i,n);for(i=n;i=2;i-)R0=Ri;Ri=R1;R1=R0;sift(R,1,i-1);void show(seqlist &R,int n)int i;for(i=1;i=n;i+)

11、printf(%d”,Ri.key);void main()seqlist S;int i;char ch1,ch2;printf(-请输入4个待排元素:(每两个数据间用空格隔开)n);for(i=1;i=N;i+)scanf(%d”,&Si.key);ch1=y;while(ch1=yllch1=Y)printf(* 菜单 *n);n);n);n);n);n,printf(-请选择下列操作:n);printf(1更新待排数据printf(2快速排序printf(3希尔排序printf(4堆排序printf(5退出printf(请选择操作类型:n);scanf(n%c”,&ch2);switch(ch2)case1:printf(请输出更新待排数据:n);for(i=1;i=N;i+)scanf(%d”,&Si.key);break;case2:quicksort(S,1,4);show(S,4);break;case3:shells

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号