数据结构课程设计报告 姓 名 班 级 学 号 指导老师 一、 课程设计目的 培养学生用学到的书本知识解决实际问题的能力;培养实际工作所需要的动手能力;培养学生以科学理论和工程上能力的技术,规范地开发大型、复杂、高质量的应用软件和系统软件具有关键性作用;通过课程设计的实践,学生可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。 二、 课程设计要求 1)学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课程设计的要求。有问题及时主动通过各种方式与教师联系沟通。 2)学生要发挥自主学习能力,充分利用时间,安排好课程设计的时间计划,并在课程设计过程中不断检测自己的计划完成情况,及时向教师汇报。 3)课程设计按照教学计划需要一周时间完成,一周中每天至少要上两小时的上机来调试C 或C++语言设计的程序,总共至少要上机调试程序 10 小时。属教师安排上机时间学生不得缺席。 三、 课程设计内容 二叉 树 的中序、前 序、后 序的递 归 、非 递 归 遍 历 算 法,层 次 序的非 递 归 遍 历算 法的实现 ,应包 含 建 树 的实现 。 四、 课程设计原理 1 . 设计思 想 以广 义 表 格式输 入 一个 二叉 树 ,将 其 接 收 至一维 数组 中,利用栈 结构建 立 二叉 链 表 树 ;通过先 、中、后 访 问根 结点 递 归 算 法遍 历 二叉 树 ;利用栈 结构依 次 将结点 入 栈 、出 栈 实现 二叉 树 的非 递 归 遍 历 算 法;利用队 列 的入 队 、出 队 操作实现二叉 树 的层 次 遍 历 。 例 如 : a(c(,d),f(g,))建 立 如 下 图 所示 二叉 树 。 2 . 数据结构 ty pedef BTREENODEPTR elemty pe; c a d f g 1) 队列数据类型定义 typedef struct{ elemtype *elem; int front,rear; int size; }SqQueue; 2) 栈数据类型定义 typedef struct stack_tag{ elemtype *elem; int top; int size; }SQSTACK; 3) 二叉树数据类型定义 typedef struct btreenode{ char data; struct btreenode *lchild,*rchild; }BTREENODE,*BTREENODEPTR,*BTREE; 3 . 主要模块设计 BTREE CreateBtree1(char *str);//创建二叉树 void PreOrder(BTREE root);//先序递归遍历二叉树 void InOrder(BTREE root);//中序递归遍历二叉树 void Post...