1 / 20
文档名称:

【数据结构】课程设计任务书及报告.doc

格式:doc   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

【数据结构】课程设计任务书及报告.doc

上传人:janny 2011/5/26 文件大小:0 KB

下载得到文件列表

【数据结构】课程设计任务书及报告.doc

文档介绍

文档介绍:【数据结构】课程设计任务书

数据结构是一门实践性很强的基础课程,它不仅要求学会分析数据对象的特征,合理地选择数据结构和存储结构,设计并分析相应的算法,而且还要编写出有效、清晰、周密的程序。
本设计的目的旨在帮助学生学会分析问题和解决问题的方法,使学生在程序设计、基本技能及学术风格等方面受到较为全面、系统和严格的规范训练。

,弄清要做什么?
充分理解问题的含意,分析并写出题目的要求,列出题意所要求的各项输入数据,确定输出数据的格式。
,确定要怎么做!
选择数据,确定数据的存储结构,并根据自顶向下逐步求清的设计方法,设计并描述具体的算法。
,上机调试。
根据确定的算法,选择一种高级语言编写出程序,确定调试所用的各种数据,然后上机调试。为了能顺利通过调试,要求学生对所用的机器及语言有充分的了解,并积累一些程序纠错的实际经验。

课程设计报告包括以下内容:
问题描述。题目的具体要求,输入数据是什么,输出数据是什么。
算法设计。给出所用的数据结构和存储结构描述,给出算法设计的基本思想和算法的具体描述。
程序清单和程序的运行结果。程序清单应包含程序的说明及可能涉及的其它文档资料,运行结果应包括输入、输出两部分数据。
算法分析和说明。根据上述算法和程序运行情况进行算法分析,或与其它算法进行比较,并加以总结说明。
学****总结。本次设计中小组各成员的分工与合作关系、小组和个人的体会以及对课程设计内容设置等方面的建议等。

本次课程设计以小组为单位进行,每组至少完成两道题。
在以下4题中,第1题为必做题,第2、3、4题为选做题,从这3题中至少选一道题完成。
、姓名查找学生成绩
设某个班级有N个学生,每个学生的数据包含:学号、姓名和5门课成绩。要求:
按学号查找学生并输出他的每门课成绩。
按姓名查找学生并输出他的每门课成绩。

建立一棵二叉树,分别递归和非递归的算法对该二叉树进行遍历,输出相应的序列。

产生3000个伪随机数,并依次存入一个数组中。对此3000个伪随机数序列分别用冒泡排序、快速排序、希尔排序、直接插入排序、直接选择排序、基数排序等排序中的方法至少3种方法进行排序,并比较它们的运行时间。

某一地区的主要交通线路如下图所示,图中的数据表示两点之间的公里数,给定任意两个城市,试编程求这两个城市之间的最短路径。
City1
City6
City5
City3
City7
City4
City2
City8
55

25 41 80 30
40 73 85
35 42
77
82
1
2
6
3
4
5
四、算法提示
C语言中二叉树存储的实现
struct nodetype
{ int info;
struct nodetype *llink;
struct nodetype *rlink;};
给出如下算法,可以按以下顺序依次输入数据域:
(1)输入根结点的值
(2)若左子树不空,输入左子树,否则输入一个结束符号;
(3)若右子树不空,输入右子树,否则输入一个结束符号。
各结点的指针域由算法自动生成。
生成上图二叉树的输入过程为:
1 2 4 0 0 0 3 5 0 0 6 0 0

相应的程序代码为:
struct nodetype *createbt(struct nodetype *bt,int k)
{ int b;
struct nodetype *p,*t;
scanf(‘%d”,&b); /*输入结点的值*/
if(b!=0) /* 0为结点符号*/
{ p=(struct nodetype *)malloc(sizeof(struct nodetype));
p->info=b; /*新结点的数据域为b*/
p->llink=null;
p->rlink=null; /*新结点的左右子树为空*/
if (k==0) t=p; /*p的根结点*/
if (k== 1)bt->llink=p; /*链接到左子树*/
if (k== 2)bt->rlink=p; /*链接到右子树*/
printf(“%d的左子树:”,b);
createbt(p,1);
printf(“%d的右子树:”,b);
createbt(p,2); }
return(t);} /*返回根指针*/
main()
{