数据结构课程设计

发布 2022-10-05 01:55:28 阅读 9961

《数据结构》课程设计报告。

题目:快速排序、哈夫曼编\译码器

班级: 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 初始化时每个方格都是关闭的,一个...