网站大量收购闲置独家精品文档,联系QQ:2885784924

二叉树的性质与链式存储结构-实验8报告剖析.doc

二叉树的性质与链式存储结构-实验8报告剖析.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验八 二 叉 树 的 性 质 与 链 式 存 储 结 构 指导老师:朱芳 学号班级姓名:张杭俊 【实验目的】 了解树结点和结点间关系的基本概念 了解树的结点访问的方法 掌握二叉树的链式存储结构 掌握二叉树结点的递归访问方法 掌握二叉树的遍历 【实验内容】 观察如图所示的二叉树并回答问题 写出前序、中序和后序的遍历序列 前序:ABDECFG 中序:DBEAFGC 后序:DEBGFCA 分别写出单支结点和叶子结点 单支结点:C、F 叶子结点:D、E、G 以“#”补充所有结点的空分支 写出补充空分支后二叉树的前序遍历序列 前序:ABD##E##CF#G### 在工程BiTree中添加二叉树的中序或后序遍历接口,并在主函数中将第(4)小题的遍历序列写入main函数的数组A[]中进行验证 结果如下: 验证题 函数调用和返回动作发生的顺序 调用顺序 root结点 返回顺序 返回值 1 A 9 3 2 B 5 2 3 D 3 1 4 NULL 1 0 5 NULL 2 0 6 NULL 4 0 7 C 8 1 8 NULL 6 0 9 NULL 7 0 调试过程: 计算题 仿照第(2)题,在main函数中,定义数组A[]=“ABD##E##C#F##”;调用函数CreateBTree_Pre(root,A);根据A[]中的数据建立如图二叉树,调用并验证递归函数int BTreeDepth(BTNode *root)计算该二叉树深度过程 函数调用和返回动作发生的顺序 调用顺序 root结点 返回顺序 返回值 1 A 13 3 2 B 7 2 3 D 3 1 4 NULL 1 0 5 NULL 2 0 6 E 6 1 7 NULL 4 0 8 NULL 5 0 9 C 12 2 10 NULL 8 0 11 F 11 1 12 NULL 9 0 13 NULL 10 0 调试过程: 二叉树的非递归遍历 #头文件 #includeiostream using namespace std ; typedef char DataType ; typedef struct Node { DataType data ; struct Node *left , *right ; }BTNode ; void TreeInit(BTNode *root) ; void CreateBTree_Pre(BTNode *root , DataType Array[]) ; void PreOrder(BTNode *root) ; void InOrder(BTNode *root) ; void PostOrder(BTNode *root) ; int BTreeDepth(BTNode *root) ; void ClearBTree(BTNode *root) ; #函数 #includeBiTree.h void TreeInit(BTNode *root) { root = NULL ; } void CreateBTree_Pre(BTNode *root , DataType Array[]) { static int count = 0 ; char item = Array[count] ; count++ ; if(item == #) { root = NULL ; return ; } else { root = new BTNode ; root-data = item ; CreateBTree_Pre(root-left , Array) ; CreateBTree_Pre(root-right , Array) ; } } void PreOrder(BTNode *root) { if(root != NULL) { cout root-data ; PreOrder(root-left) ; PreOrder(root-right) ; } } void InOrder(BTNode *root) { if(root != NULL) { InOrder(root-left) ; cout root-data ; InOrder(root-right) ; } } void PostOrder(BTNode *root) { if(root != NULL) { PostOrder(

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档