欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构2叉数遍历.docx

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

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

    数据结构2叉数遍历.docx

    1、数据结构2叉数遍历内蒙古工业大学信息工程学院实 验 报 告课程名称: 数据结构与算法 实验名称: 二叉树遍历算法的设计 实验类型: 验证性综合性 设计性实验室名称: * 班级: * 学号: *姓名: * 组别: 同组人: 成绩: 实验日期: 2013-9-24 实验报告撰写要求一、 实验前用预习报告纸撰写预习报告,预习报告包括以下内容1 实验目的2 实验用仪器设备、器材或软件环境3 实验原理、方案设计、程序框图、预编程序等4 实验过程中需要记录的实验数据表格二、 实验过程中,要认真观察,仔细记录三、 完成实验后用实验报告纸撰写实验报告,包括以下内容1 仪器设备型号及编号2 实验器材或软件环境3

    2、 实验步骤、程序调试方法4 实验数据处理及结果分析5 实验中存在的问题6 体会及思考题四、 报告撰写时,要求格式规范、书写整齐预习报告成绩: 指导教师审核(签名): 年 月 预习报告实验二 二叉树遍历算法的设计一、目的本实验的目的是理解二叉树的逻辑结构和二叉链表存储结构,进一步提高使用理论知识指导解决实际问题的能力,并对算法性能进行分析。二、 题目二叉树遍历算法的设计。三、 实验类型设计性。方案一采用递归算法实现二叉树遍历算法。方案二采用非递归算法实现二叉树遍历算法。四、要求及提示 要求: (1)两种算法以及各种基本操作(创建二叉树)定义为独立函数(注意函数接口的规定)。 (2)采用菜单驱动方

    3、式调用各种功能。 (3)用测试数据测试程序的正确性,如下面的二叉树: (4)对同一棵二叉树,分别调用两种算法,单步跟综递归程序的执行过程并观察调用堆栈。 (5)分析算法的时间复杂度。提示:二叉链表可以采用数据类型定义:typedef struct node datatype data; /每个结点的数据域 struct node *lchild, *rchild; / 结点的左孩子指针域lchild,右孩子指针域rchildBinNode;五、实验报告1、写出每个算法的思想和关键代码。2、画出算法流程图。3、调试程序出现的问题及解决的方法。4、报告给出测试的结果并写出设计体会。5、列表对比分析

    4、两种算法的时间复杂度、空间复杂度,阐明产生差异的原因。 6、根据实例归纳将递归算法改写为非递归算法的步骤。一:流程图 先序遍历流程图:中序遍历流程图:后序遍历流程图:递归代码:#include#include#includetypedef struct node char data;struct node *lchild,*rchild;BinNode;BinNode *createbn( ) BinNode *q;struct node *m30;int j,i,x; printf(建立二叉树,输入结点对应的编号和值n); printf(i,x = ); scanf(%d,%c,&i,&x)

    5、; while(i != 0 & x != 0) q=(BinNode*)malloc(sizeof(BinNode); q-data = x; q-lchild = NULL; q-rchild = NULL; mi = q; if(i != 1) j = i / 2;if(i % 2 = 0) mj-lchild = q; else mj-rchild = q; printf(i,x = ); scanf(%d,%c,&i,&x); return m1; void BinNodePreorder(BinNode*bn)if(bn!=NULL) printf(%c ,bn-data); Bi

    6、nNodePreorder(bn-lchild); BinNodePreorder(bn-rchild); void BinNodeInorder(BinNode*bn) if(bn!=NULL) BinNodeInorder(bn-lchild); printf(%c ,bn-data); BinNodeInorder(bn-rchild); void BinNodePastorder(BinNode*bn) if(bn!=NULL) BinNodeInorder(bn-lchild); BinNodeInorder(bn-rchild); printf(%c ,bn-data); void

    7、 main() BinNode *bn; int select; while(select) printf(1. 建立二叉树 n); printf(2. 二叉树的前序遍历n); printf(3. 二叉树的中序遍历n); printf(4. 二叉树的后序遍历n); printf(0. 结束程序 n); scanf(%d,&select); switch(select) case 1:printf(输入二叉树的结点值n); getchar(); bn=createbn(); printf(二叉树已建立完成!n); break; case 2:printf(该二叉树前序遍历序列为:); BinNo

    8、dePreorder(bn); printf(n); break; case 3:printf(该二叉树中序遍历序列为:); BinNodeInorder(bn); printf(n); break; case 4:printf(该二叉树后序遍历序列为:); BinNodePastorder(bn); printf(n); break; case 0: ; 实验结果:非递归代码:#include#include#include#define MAXNUM 100typedef struct nodeint data;struct node *lchild,*rchild;BinNode;Bin

    9、Node *createbn( ) BinNode *q;struct node *m30;int j,i,x; printf(输入结点对应的编号和值n); printf(二叉树编号i= ); scanf(%d,&i);printf(n); printf(节点的值X= ); scanf(%d,&x);printf(n); while(i != 0 & x != 0) q=(BinNode*)malloc(sizeof(BinNode); q-data = x; q-lchild = NULL; q-rchild = NULL; mi = q; if(i != 1) j = i / 2; if(

    10、i % 2 = 0) mj-lchild = q; else mj-rchild = q; printf(二叉树编号i= ); scanf(%d,&i); printf(n); printf(节点的值x= ); scanf(%d,&x); printf(n); return m1; void BinNodePreorder(BinNode*bn) BinNode*stackMAXNUM,*q; int top=1; stacktop=bn; while(top=0) q=stacktop; top-; if(q!=NULL) printf(%d,q-data); top+; stacktop=

    11、q-rchild; top+; stacktop=q-lchild; void BinNodeInorder(BinNode*bn) BinNode*stackMAXNUM; int top=0; stacktop=bn; do while(stacktop!=NULL) top=top+1; stacktop=stacktop-1-lchild; top=top-1; if(top=0) printf(%d,stacktop-data); stacktop=stacktop-rchild; while(top=0);void BinNodePastorder(BinNode*bn) BinN

    12、ode*stackMAXNUM; int tagMAXNUM; int top=0; BinNode*n; n=bn; do while(n!=NULL) top+; stacktop=n; tagtop=0; n=n-lchild; if(top=0) n=stacktop; if(tagtop=1) printf(%d,stacktop-data); top-; n=stacktop; if(top0) if(tagtop!=1) n=n-rchild; tagtop=1; else n=NULL; while(top!=0);void main() BinNode *bn; int se

    13、lect; while(select) /printf(二叉树的建立和非递归遍历n); printf(1. 建立二叉树 n); printf(2. 二叉树的前序遍历n); printf(3. 二叉树的中序遍历n); printf(4. 二叉树的后序遍历n); printf(0. 结束程序 n); scanf(%d,&select); switch(select) case 1:printf(输入二叉树的结点值n); getchar(); bn=createbn(); printf(建立完成.n); break; case 2:printf(二叉树前序遍历序列为:); BinNodePreorder(bn); printf(n); break; case 3:printf(二叉树中序遍历序列为:); BinNodeInorder(bn); printf(n); break; case 4:printf(二叉树后序遍历序列为:); BinNodePastorder(bn); printf(n); break; case 0: ; 实验结果:


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开