《数据结构》课程设计报告。
题目:快速排序、哈夫曼编\译码器
班级: 09信管一班
学号: 20907106
姓名: 段东升
时间:2024年12月23日
一、课程设计概述:
本次数据结构课程设计共完成两个题:快速排序、哈夫曼编\译码器。
使用语言:c
编译环境:visual c++ 6.0
二、课程设计题目一。
实验内容]快速排序。
问题描述]输入有限个数据,按照从小到大的顺序进行快速排序。
需求分析]要求及提示:
1、 对用上述算法进行快速排序,写出运行结果。
2、 写出用上述算法进行的第一趟快速排序后的结果。
3. 界面美观。
详细设计]程序清单:
#include<>
#define max 100
int r[max];
void quicksortl(int r[ ]int s,int t)
while((r[0]>=r[i])&i i++;if(i
r[i]=r[0];
if(s quicksortl(r,s,i-1);
if(t>i+1)
quicksortl(r,i+1,t);
void main( )
int i,n;
printf("请输入待排序元素的个数(少于100个):
scanf("%d",&n);
if(n>=100)
quicksortl(r,1,n);
printf("排序结束后为:")
for(i=1;i<=n;i++)
printf("%1d ",r[i]);
调试分析]本程序主要的操作对象是记录数据,然后对数据进行排序处理,最后输出处理后的数。
据。怎么进行排序是一个重点也是难点,是此程序出现问题的主要原因之一:
问题一:现象:当输入的数据个数大于规定的最大数时,程序仍在继续运行。
原因:该程序中缺少一个排错片段。导致输入数据个数大于定义最大值时,不会产生中断,继续向下面的排序函数运行。
解决方法是对数据输出时,添加一个if语句,当输出的数据大于100时,提醒用户重新输入正确数据。
问题二:现象:排序时只进行第一次排序,余下的数未参与到排序中,直接输出到排序后的队列。
原因:在编写主要函数排序函数时,未采用循环语句或有非法终止的条件。导致进行第一次排序后,条过了后面的数据,直接进行了输出函数。
解决方法是将该函数分成两种情况来分析,即r【0】与r【j】的关系。
运行结果及分析]
1. 对用上述算法进行快速排序,写出运行结果。
运行结果如下:
2. 写出用上述算法进行的第一趟快速排序后的结果。
运行结果如下
3. 若出现输出大于100,则输出如下:
参考文献】1].《c程序设计》第二版,谭浩强著。北京:清华大学出版社,2024年。
2].《数据结构》 严蔚敏、吴伟民。北京:清华大学出版社,2024年。
2.哈夫曼编\译码器。
# define max 50
struct a
struct b
main()
for(;i<=2*n-1;i++)
ht[i].parent=ht[i].lchild=ht[i].rchild=0;
for(i=n+1;i<=2*n-1;i++)
else if(ht[k].parent==0 &&ht[k].weight
ht[s1].parent=ht[s2].parent=i;
ht[i].lchild=s1;
ht[i].rchild=s2;
ht[i].weight=ht[s1].weight+ht[s2].weight;
for(i=1;i<=n;i++)
hcd[i]=d;
printf("shu chu ha fu bian ma
for(i=1;i<=n;i++)
总结:课程设计的过程是艰辛的,但是收获却是很大的。“数据结构”的研究不仅涉及到计算机硬件的研究范围,而且和计算机软件的研究有着密切的关系。
在此之前虽然已经学过c语言,但是由于自己的懒惰而并没有太多的实践,这一次数据结构课程设计使自己不得不耐下性子再把c语言的知识复习一遍,c语言的知识得到了一定的巩固,自己的编程能力也得到了一定的提高。在编程过程当中难免会遇到这样或那样的困难,但是自己也能够查阅资料,虚心向同学学习,解决了一系列难题。虽然数据结构的课程已经结束,但是自己仍应该不断的复习,不断的提高自己。
数据结构课程设计
课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...
数据结构课程设计
数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...
数据结构课程设计
班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...