数据结构课程设计二叉树的遍历报告.doc_第1页
数据结构课程设计二叉树的遍历报告.doc_第2页
数据结构课程设计二叉树的遍历报告.doc_第3页
数据结构课程设计二叉树的遍历报告.doc_第4页
数据结构课程设计二叉树的遍历报告.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构课程设计报告姓 名 班 级 学 号 指导老师 一、 课程设计目的培养学生用学到的书本知识解决实际问题的能力;培养实际工作所需要的动手能力;培养学生以科学理论和工程上能力的技术,规范地开发大型、复杂、高质量的应用软件和系统软件具有关键性作用;通过课程设计的实践,学生可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。二、 课程设计要求1)学生必须仔细阅读数据结构课程设计方案,认真主动完成课程设计的要求。有问题及时主动通过各种方式与教师联系沟通。2)学生要发挥自主学习能力,充分利用时间,安排好课程设计的时间计划,并在课程设计过程中不断检测自己的计划完成情况,及时向教师汇报。3)课程设计按照教学计划需要一周时间完成,一周中每天至少要上两小时的上机来调试C或C+语言设计的程序,总共至少要上机调试程序10小时。属教师安排上机时间学生不得缺席。三、 课程设计内容二叉树的中序、前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。四、 课程设计原理1. 设计思想以广义表格式输入一个二叉树,将其接收至一维数组中,利用栈结构建立二叉链表树;通过先、中、后访问根结点递归算法遍历二叉树;利用栈结构依次将结点入栈、出栈实现二叉树的非递归遍历算法;利用队列的入队、出队操作实现二叉树的层次遍历。例如:a(c(,d),f(g,)建立如下图所示二叉树。cadfg2. 数据结构typedef BTREENODEPTR elemtype;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 PostOrder(BTREE root);/后序递归遍历二叉树void PreOrder_1(BTREE root);/先序非递归遍历二叉树void InOrder_1(BTREE root);/中序非递归遍历二叉树void PostOrder_1(BTREE root);/后序非递归遍历二叉树void LayerOrder(BTREE root);/层次遍历其他模块包括栈的初始化及其基本操作和队列的初始化及基本操作。主菜单先序递归遍历中序递归遍历后序递归遍历先序非递归遍历中序非递归遍历后序非递归遍历层次遍历结束将以广义表形式输入的二叉树接收到数组str80中,成功建立二叉树4. 详细设计1) 二叉树的建立其中mark的值1、2、3、4分别指stri为字母、(、,、);tag为左、右孩子的标志;root=null检查str10(),mark=1;root-data=str0,root-lchild=root-rchild=null;p=root;str0是否为字母YNNmark=2?mark=2stri入栈tag=0mark=3?mark=3tag=1Nmark=4pop为空return nullNYY)mark=1&栈不空新建结点pp-data=stri p-lchild=p-rchild=nulltag=0?循环结束后return root栈顶-rchild=p栈顶-lchild=pYN2) 二叉树的递归遍历(以先序遍历为例)结点为空N访问根节点先序遍历方式遍历左子树先序遍历方式遍历右子树结束Y开始3) 二叉树的非递归遍历(以先序遍历为例)初始化队列,root入队栈非空出栈p;打印p-dataYp-lchild!=nullYp-lchild入栈p-lchild!=nullNYNp-rchild入栈结束N4) 二叉树的层次遍历访问元素所指结点,若该元素所指结点的左右孩子结点非空,则该元素所指结点的左孩子指针和右孩子指针顺序入队。初始化队列,root入队队列非空出队p;打印p-dataYp-lchild!=nullYp-lchild入队p-lchild!=nullNYNp-rchild入队结束N五、 运行结果1. 建立二叉树2. 先序遍历3. 中序遍历4. 后序遍历5. 层次遍历6. 退出程序7. 出错信息六、 设计总结二叉树是数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论