《数据结构与算法》课程设计任务书
题目: 算术表达式与二叉树
学生姓名: 学号: 班级:
题目类型:软件工程(R ) 指导教师:
一. 题目简介
一个表达式和一棵二叉树之间,存在着自然的对应关系。本设计要求学生编程实现基于二叉树表示的算术表达式的操作。通过该题目的设计过程,可以加深理解树及二叉树的逻辑结构、存储结构以及递归算法设计的基本原理,掌握树及二叉树上基本运算的实现。进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养学生的动手能力。
二. 主要任务
第一部分:基本算法实现
1、线性结构基本算法实现(指导老师根据题目指定);
2、树型结构基本算法实现(指导老师根据题目指定);
3、图型结构基本算法实现(指导老师根据题目指定);
4、查找基本算法实现(指导老师根据题目指定);
5、排序基本算法实现(指导老师根据题目指定);
第二部分:指定题目的设计与实现
1、查阅文献资料,一般在3篇以上;
2、建立数据的逻辑结构和物理结构;
3、完成相应算法的设计;
4、完成测试工作;
5、撰写设计说明书;
6、做好答辩工作。
三. 主要内容、功能及技术指标
假设算术表达式Expression 内可以含有变量(a ~z )、常量(0~9)和二元运算符(+,-,*,/,^(乘幂) )。实现以下操作:
(1)ReadExpre(E)—以字符序列的形式输入语法正确的前缀表达式并构造表达式E 。
(2)WriteExpre(E)—用带括弧的中缀表达式输出表达式E 。
(3)Assign(V,c)—实现对变量V 的赋值(V=c),变量的初值为0。
(4)Value(E)—对算术表达式E 求值。
(5)CompoundExpr (P ,E1,E2)--构造一个新的复合表达式(E1)P (E2)
(6)算法对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得出满足规格说明要求的结果;对算法实现过程中的异常情况能给出有效信息;
(7)较高要求:实现图形化操作界面。
四. 提交的成果
1. 设计说明书一份,内容包括:
1) 中文摘要100字;关键词3-5个;
2) 序言;
3)采用类c 语言定义相关的数据类型
4)各模块的伪码算法
5)函数的调用关系图
6)调试分析
a 、调试中遇到的问题及对问题的解决方法;
b 、算法的时间复杂度和空间复杂度。
7)测试结果
8)源程序(带注释)
9) 设计总结、参考文献、致谢等。
2. 刻制光盘一张。
五. 主要参考文献
1.严蔚敏,吴伟民. 《数据结构(C 语言版)》. 清华大学出版社.
2.严蔚敏,吴伟民. 《数据结构题集(C 语言版)》. 清华大学出版社. 3 .《DATA STRUCTURE WITH C++》. William Ford,William Topp .清华大学出版社(影印版).
4.谭浩强. 《c 语言程序设计》. 清华大学出版社.
5.数据结构与算法分析(Java 版) , A Practical Introduction to Data Structures and Algorithm Analysis Java Edition Clifford A. Shaffer , 张铭, 刘晓丹译 电子工业出版社 2001 年1月.
六.
各阶段时间安排(共2周)
2016年6月28日
《数据结构与算法》课程设计任务书
题目: 算术表达式与二叉树
学生姓名: 学号: 班级:
题目类型:软件工程(R ) 指导教师:
一. 题目简介
一个表达式和一棵二叉树之间,存在着自然的对应关系。本设计要求学生编程实现基于二叉树表示的算术表达式的操作。通过该题目的设计过程,可以加深理解树及二叉树的逻辑结构、存储结构以及递归算法设计的基本原理,掌握树及二叉树上基本运算的实现。进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养学生的动手能力。
二. 主要任务
第一部分:基本算法实现
1、线性结构基本算法实现(指导老师根据题目指定);
2、树型结构基本算法实现(指导老师根据题目指定);
3、图型结构基本算法实现(指导老师根据题目指定);
4、查找基本算法实现(指导老师根据题目指定);
5、排序基本算法实现(指导老师根据题目指定);
第二部分:指定题目的设计与实现
1、查阅文献资料,一般在3篇以上;
2、建立数据的逻辑结构和物理结构;
3、完成相应算法的设计;
4、完成测试工作;
5、撰写设计说明书;
6、做好答辩工作。
三. 主要内容、功能及技术指标
假设算术表达式Expression 内可以含有变量(a ~z )、常量(0~9)和二元运算符(+,-,*,/,^(乘幂) )。实现以下操作:
(1)ReadExpre(E)—以字符序列的形式输入语法正确的前缀表达式并构造表达式E 。
(2)WriteExpre(E)—用带括弧的中缀表达式输出表达式E 。
(3)Assign(V,c)—实现对变量V 的赋值(V=c),变量的初值为0。
(4)Value(E)—对算术表达式E 求值。
(5)CompoundExpr (P ,E1,E2)--构造一个新的复合表达式(E1)P (E2)
(6)算法对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得出满足规格说明要求的结果;对算法实现过程中的异常情况能给出有效信息;
(7)较高要求:实现图形化操作界面。
四. 提交的成果
1. 设计说明书一份,内容包括:
1) 中文摘要100字;关键词3-5个;
2) 序言;
3)采用类c 语言定义相关的数据类型
4)各模块的伪码算法
5)函数的调用关系图
6)调试分析
a 、调试中遇到的问题及对问题的解决方法;
b 、算法的时间复杂度和空间复杂度。
7)测试结果
8)源程序(带注释)
9) 设计总结、参考文献、致谢等。
2. 刻制光盘一张。
五. 主要参考文献
1.严蔚敏,吴伟民. 《数据结构(C 语言版)》. 清华大学出版社.
2.严蔚敏,吴伟民. 《数据结构题集(C 语言版)》. 清华大学出版社. 3 .《DATA STRUCTURE WITH C++》. William Ford,William Topp .清华大学出版社(影印版).
4.谭浩强. 《c 语言程序设计》. 清华大学出版社.
5.数据结构与算法分析(Java 版) , A Practical Introduction to Data Structures and Algorithm Analysis Java Edition Clifford A. Shaffer , 张铭, 刘晓丹译 电子工业出版社 2001 年1月.
六.
各阶段时间安排(共2周)
2016年6月28日