2013-2014学年第一学期《数据结构》课程设计题目及要求。
本课程设计一共包括六道大题,请同学们根据自己的爱好选择其中一道大题。每道大题分为若干小题,请根据要求完成,并撰写课程设计报告(电子版)。实习报告规范。
实习报告的开头给出题目、班级、姓名、学号和完成日期,并包括以下内容:1、需求分析。
说明调和设计的任务,主要内容包括:(1)输入的形式和输入值得范围。(2)输出的形式。
3)程序所能达到的功能。(4)测试数据。2、概要设计。
说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次关系(最好用图说明)3、详细设计。
实现概要设计中定义的所有数据类型,画出函数的调用关系图。4、调试分析。
5、用户使用说明6、测试结果。
7、附录(附全部**)
一、线性表(第1和第2题均为必做题,难度:)
1、集合的并、交和差运算的算法。(必做)
问题描述:设计一个能演示集合的并、交和差运算的程序。要求:演示程序以用户和计算机的对话方式执行。
2、一元多项式的操作。(任意选择三项要求)
问题描述:设计一个一元稀疏多项式简单计算器。要求:
1)输入并建立多项式。
2)输出多项式,输出形式为整数序列:n,c1,e1,,c2,e2,,cn,en,其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列。
3)多项式a和b相加,建立多项式a+b。(4)多项式a和b相减,建立多项式a-b。(5)计算多项式在x处的值。(6)求多项式a的导函数。
7)多项式a和b相乘,建立多项式a*b。
二、栈、队列和递归程序设计(第1题必做,第2和3题任选一题,难度:)
1、求算术表达式的值。(必做)
问题描述:设计一个程序,演示用算符优先法对算术表达式求值的过程。
要求:以字符序列的形式从终端输入以“#”结束表达式。如果表达式正确计算表达式的值,否则指出表达式中错误的类型。
在输入的表达式中可以有加、减、乘、除和括号运算,输入的数据为实数。输出表达式的值,并且输出在求值中运算符栈、运算数栈、输入字符和主要操作的变化过程。
2、迷宫问题。
问题描述:随机产生一个m*n的迷宫,0和1分别表示迷宫中的通路和障碍。求出一条从入口到出口的通路,或得到没有通路的结论。要求:以链表作存储结构的栈类型,写一个非递归程序。
3、hanoi问题的求解演示。
问题描述:设计一个程序,演示hanoi问题的实现过程。要求:
1)用户可手工移动圆盘实现求解。(2)用户可让计算机演示求解过程。(3)用非递归算法实现。
三、数组和广义表(第1和2题均为必做题,难度:)1、三元组表示的稀疏矩阵的转置、加法和乘法的实现。(必做)
问题描述:设计一个程序,演示用三元组和十字链表表示的稀疏矩阵的转置、加法和乘法的实现。要求:
1)演示稀疏矩阵a的三元组和十字链表的建立过程。(2)演示稀疏矩阵a的转置过程。
3)演示稀疏矩阵a和b的相加过程。(4)演示稀疏矩阵a和b的相乘过程。
2、识别广义表的“头”或“尾”的演示。(必做)
问题描述:设计一个程序,建立广义表的存储结构,演示在此存储结构上实现的广义表求头/尾操作序列的结果。要求:
1)设计一个广义表,允许分多行输入,其中可以任意输入空格符,原则上。
是不限长的仅由字母或数字组成的串。
2)按表头和表尾的分解方法编写建立广义表存储结构的算法。
四、树(第1和2题均为必做题,难度:)1、二叉树的遍历。(必做)
问题描述:设计一个程序演示在二叉树上进行三种遍历的过程。要求:
1)从键盘上输入二叉树的每一个结点,演示二叉树t的建立过程。(2)演示各种遍历的遍历过程。
2、线索二叉树的应用。(必做)
问题描述:设计一个程序,演示线索二叉树的建立和插入、删除结点的过程。要求:
(1)从键盘上输入线索二叉树的每一个结点,演示线索二叉树t的建立过程。(2)演示在t上插入一棵子树的过程。(3)演示在t上删除一棵子树的过程。
五、图(第1和2题均为必做题,难度:)1、图扁历的演示。(必做)
问题描述:设计一个程序,演示在有向图或无向图中遍历所有结点的过程。要求:
1)分别用深度优先或广度优先实现(选择一项)。
2)从任意指定的结点为起点,分别输出每种遍历下的结点访问序列和相应。
生成树的边集。
2、最小生成树。(必做)
问题描述:设计一个程序求连通网中的最小生成树要求:
1)构造一个不少于10个顶点30条边的连通网。
2)用kruskal算法求从任意指定的结点开始的最小生成树。(3)演示生成过程。
六、查找和排序(第1和2题均为必做题,难度:)1、平衡二叉树的操作。
问题描述:利用平衡二叉树实现一个动态查找表要求:
1)从键盘上接受数据,建立一棵平衡二叉树的过程。(2)实现动态查找表的三种基本功能:查找、插入和删除。(3)合并两棵平衡二叉树。
4)把一棵平衡二叉树**为两棵平衡二叉树,使得在一棵树中的所有关键。
字都小于或等于x,另一棵树中的任一关键字都大于x。
2、内部排序算法的比较。问题描述:设计一个程序演示各种内部排序方法在排序时,关键字的比较次数和关键字的移动次数要求:
1)对常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择。
排序、快速排序、系尔排序和堆排序。(2)随机产生100个以上数据。
数据结构课程设计题目及要求
题目 学生信息管理系统的开发与设计。1.基本内容。学生简历 学生信息的添加 学生信息的删除 学生信息的查询 有关信息的输出2.设计要求。以链表为存储结构,利用菜单进行功能选择,测试数据设计者自定。每个学生的数据项包含 学号 姓名 性别 班级 住址等。要求用c完成。要求和安排。1 问题分析和任务定义 ...
《数据结构》课程设计题目及要求
1 每位同学限选1题,并到所在自然班的班长处登记,同一题不超过4人 一个班之内 2 课程设计成绩分为5级 优秀 5分 良好 4分 中等 3分 及格 2分 不及格 1分 3 题目有难易和工作量大小之分 具体见题目后的 星级 为体现公平,请参见下表,请同学们结合自身情况选择题目。4 课程设计报告和源 严...
数据结构课程设计题目及要求
实验一 实验四任选一题 实验五 实验九任选一题。实验一运动会分数统计。一 实验目的 1 熟练掌握线性表的两种存储方式。2 掌握链表的操作和应用。3 掌握指针 结构体的应用。4 按照不同的学校,不同项目和不同的名次要求,产生各学校的成绩单 团体总分报表。二 实验内容 问题描述 参加运动会的n个学校编号...