- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实验报告
实验名称:数据结构实验
学号:4558568
姓名:鹅鹅鹅
指导老师:鹅鹅鹅
计算机与信息学院
实验1线性表的抽象数据类型的实现
实验目的
按照实验题目要求独立正确地完成实验内容(编写、调试算法程序,提交程序清单及及相关实验数据与运行结果);
实验环境
计算机、C语言程序设计环境
实验学时
4学时,必做实验。
实验内容
直接排序和希尔排序
冒泡排序和快速排序
选择排序和堆排序
实验步骤
先给出重点部分的流程图(不是整个程序,是部分),然后把编写的代码贴上来(注意要编辑下,不要直接放这里)
测试数据与实验结果
可把程序运行每个重要步骤截图贴这里
小结
可写自己实验的体会,不能雷同,后果自负
通过实验,使我更加透彻地认识到排序的重要性;
实验总的来讲,并不难,但是C的调试很麻烦,我想我还是好好练习一下C语言吧。通过实验,让我认识到C语言中结构和指针的重要性。编程语言中嵌套的思想很重要,结构里面还可以套结构。
附录:
#includestdio.h
#define TRUE 1
#define FALSE 0
#define N 100
typedef struct Node
{
int elem[N];
int last;
}List;
typedef int status;
//-----------------------------------------------------------
status Initlast(List *a)
{
a-last=0;
return TRUE;
}
status input(List *a)
{
int i=1;
printf(\n请输入数据(数据总数小于100,且以100作为结束符):);
scanf(%d,(a-elem[i]));
while(a-elem[i++]!=100)
{
a-last++;
scanf(%d,(a-elem[i]));
}
return TRUE;
}
status search(List *a,int b)
{
int low=1,high=a-last,mid=0;
while(low=high)
{
mid=(low+high)/2;
if(b==a-elem[mid])
return mid;
else
if(ba-elem[mid])
high=mid-1;
else
low=mid+1;
}
return TRUE;
}//--------------------------------------------------------------------
int pass(List *a,int low,int high)
{
int x=a-elem[low],left=low,right=high;
while(leftright)
{
while(leftrighta-elem[right]=x)
right--;
if(leftright)
{
a-elem[left]=a-elem[right];
left++;
}
while(leftrighta-elem[left]=x)
left++;
if(leftright)
{
a-elem[right]=a-elem[left];
right--;
}
}
a-elem[left]=x;
return left;
}
void sort(List *a,int low,int high)//快速排序
{
int mid;
if(lowhigh)
{
mid=pass(a,low,high);
sort(a,low,mid-1);
sort(a,mid+1,high);
}
}
status put(List *a)
{
int i;
for(i=1;i=a-last;i++)
printf(%6d,a-elem[i]);
printf(\n);
return TRUE;
}
void bubble(List *a)//冒泡排序
{
int i=0,j=0,n=a-last,m,flag=1;
for(i=1;inflag==1;i++)
{
flag=0;
for(j=1;j=n-i;j++)
if(a-elem[j]a-elem[j+1])
{
flag=1;
m=a-elem[j];
a-elem[j]=a-elem[j+1];
a
原创力文档


文档评论(0)