欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构课程设计二叉树的遍历报告.doc

    • 资源ID:82422357       资源大小:113.50KB        全文页数:10页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计二叉树的遍历报告.doc

    数据结构课程设计报告姓 名 班 级 学 号 指导老师 一、 课程设计目的培养学生用学到的书本知识解决实际问题的能力;培养实际工作所需要的动手能力;培养学生以科学理论和工程上能力的技术,规范地开发大型、复杂、高质量的应用软件和系统软件具有关键性作用;通过课程设计的实践,学生可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。二、 课程设计要求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=pYN 以先序遍历的顺序创建二叉树的各个结点,流程图如图4-3所示。将二叉树的各结点以字符串数组的形式存放在ch中,首先判断数组的第一个元素是否为空,如果为空则结二叉树的遍历结果返回空,反之遍历下一个结点。下一个结点不为零,则其为致左子树,否则致为右子树,依次循环直到最终输出为回车键,循环结束。2) 二叉树的递归遍历(以先序遍历为例)结点为空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. 出错信息六、 设计总结二叉树是数据结构的的基本内容。虽然程序规模不大,我依然付出了努力,仍免不了各种错误的出现。编程过程需要很大的毅力和耐心,而且要有良好的思维和扎实的专业基础知识,所以我需要不断的学习,发现自身不足之处并改正它,逐步提高自己。

    注意事项

    本文(数据结构课程设计二叉树的遍历报告.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开