数据结构实验五课案.docx

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

1. 实验步骤: 先定义顺序表的结点: typedef struct { KeyType key; InfoType otherinfo; }ElemType; typedef struct { ElemType *R; int length; }SqList; 然后定义一个随机取数的函数,存到顺序表中: void CreateList(SqList L,int n) 然后定义一个显示顺序表的函数,将顺序表中的数据显示出来: void ListTraverse(SqList L) 然后通过排序函数,将所有的数据按照从大到小的顺序排列: void BubbleSort(SqList L) 实验结果: 测试数据: 38 86 9 88 29 18 58 27 排序后: 9 18 27 29 38 58 86 88 BubbleSort排序方法中数据的比较次数为:27 疑难小结: 这个程序的难点在于排序函数,总是把从第几个数开始排序 以及怎样循环弄错。 源代码: #includeiostream using namespace std; #includetime.h typedef int KeyType; typedef char * InfoType; typedef struct { KeyType key; InfoType otherinfo; }ElemType; typedef struct { ElemType *R; int length; }SqList; int CmpNum; void CreateList(SqList L,int n) { int i; L.R=new ElemType[n+1]; srand(time(0)); for(i=1;i=n;i++) { L.R[i].key=rand()%100; } L.length=n; } void ListTraverse(SqList L) { int i; for(i=1;i=L.length;i++) coutL.R[i].key\t; coutendl; } void BubbleSort(SqList L) { int m,flag,i; m=L.length-1;flag=1; while(m0flag) { flag=0; for(i=1;i=m;i++) { CmpNum++; if(L.R[i].keyL.R[i+1].key) { flag=1; L.R[0]=L.R[i+1]; L.R[i+1]=L.R[i]; L.R[i]=L.R[0]; } } m--; } } void main() { SqList L; CreateList(L,8); cout测试数据:endl; ListTraverse(L); BubbleSort(L); cout排序后:endl; ListTraverse(L); coutBubbleSort排序方法中数据的比较次数为:CmpNumendl; } 2 实验步骤: 先声明一个结点: typedef struct { KeyType key; InfoType otherinfo; }ElemType; typedef struct { ElemType *R; int length; }SqList; 然后建立一个建表函数:void CreateList(SqList L),将十个关键字输入到表中。 建立一个遍历函数void ListTraverse(SqList L)用以显示排序前后的数据。 分别建立四个排序方法: 直接插入排序:void InsertSort(SqList L) 折半插入排序void InsertSort(SqList L) 希尔排序:void ShellSort(SqList L , int dt[] , int t) void ShellInsert(SqList L , int dk) 快速排序:int Partition(SqList L , int low, int high) void QSort(SqList L , int low, int high) void QuickSort(SqList L) 实验结果: 测试数据: 1. 增量为2 ,该算法执行3趟 测试数据: 12 2 16

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档