- 1、本文档共165页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
05_第五六章树与二叉树
第五六章 树和二叉树;例 人机对奕问题;6.1 树的定义和基本术语;6.2 树、森林和二叉树间的转换;6.1 树的定义和基本术语;一、树的定义;A;数据对象 D:; 基本操作:;A;树的表示:;对比树型结构和线性结构的结构特点;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;三、基本术语;结点:;如果将树中结点的各子树看成是从左至右是有次序的(即不能互换),则称该树为有序树,否则称为无序树。;;任何一棵非空树是一个二元组
Tree = (root,F)
其中:root 被称为根结点
F 被称为子树森林;A;巩固练习; 5.1二叉树概述 ; 二叉树或为空树,或是由一个根结点加上两棵分别称为左子树和右子树的、互不交的二叉树组成。;一、二叉树的基本形态:;
●结论“_____”是正确的。(2003程序员)
A.二叉树的度为2
B.树中结点的度可以小于2
C.二叉树中至少有一个结点的度为2
D.二叉树中任何一个结点的度都为2;二、二叉树的重要特性; 性质 1 : 在二叉树的第 i 层上至多有2i-1 个结点。 (i≥1);性质 2 : 深度为 k 的二叉树上至多含 2k -1 个结点(k≥1)。; 性质 3 : 对任何一棵二叉树,若它含有n0 个叶子结点、n2 个度为 2 的结点,则必存在关系式:n0 = n2+1。;两类特殊的二叉树:;完全二叉树:在满二叉树的最下层从右到左连续地删除若干个结点所得到的二叉树。;1; 性质 4 : 具有 n 个结点的完全二叉树的深度为
? log2n? +1 。;性质 5 :;巩固练习;5、假定一棵二叉树的结点个数为32,则它的最小深度为______。
6、假定一棵树的广义表表示为A(B(C, D(E, F,G), H(I, J))),则结点H的双亲结点为____。
7、 在一棵二叉树中,度为2的结点有5个,度为1的结点有6个,那么叶子结点有______个。
8、在含100个结点的完全二叉树,叶子结点的个数为________ 。
9、如果根的层次为1,具有61个结点的完全二叉树的高度为____。(程序员2005)
供选择的答案:
A.5 B.6 C.7 D.8;5.2 二叉树的存储结构;i; a b c d e f g h 0 i;#define MAX_TREE_SIZE 100
// 二叉树的最大结点数
typedef TElemType SqBiTree[ MAX_ TREE_SIZE+1];
// 0号单元没存储结点
SqBiTree bt;;例如:;例如:;A;typedef char datatype;
typedef struct Bnode { // 结点结构
datatype data;
struct Bnode *lchild, *rchild;
// 左右孩子指针
} Bnode, *BiTree;;A;2、三叉链表;5.3遍历二叉树; 顺着某一条搜索路径巡访二叉树
中的结点,能否使得每个结点均被访问一次,而且仅被访问一次。; “遍历”是任何类型均有的操作,对线性结构而言,只有一条搜索路径(因为每个结点均只有一个后继),故不需要另加讨论。而二叉树是非线性结构,;二叉树的遍历;二叉树的遍历
二叉树由根、左子树、右子树三部分组成
二叉树的遍历可以分解为:访问根,遍历左子树和遍历右子树
;A;;A; 巩固练习;A; 巩固练习; 巩固练习; 巩固练习;-;假设一棵二叉树的层序序列是ABCDEFGHIJ和中序序列是DBGEHJACIF,请画出该树,并写出后序序列。;已知一棵二叉树的先序、中序和后序遍历序列分别为:
先序: BE×KCJADG×HI
中序: LK×CAJ××FGIH
后序: KL×JCEF××GDB 其中有些字母已丢失,请添写完整并画出此二叉树
先序序列:
中序序列:
后序序列: ;三、遍历算法的递归描述
;void preorder(BTNode *bt)
{ if(bt!=NULL)
{ printf(%d\t,bt-data);
preorder(bt-lchild);
preorder(bt-rchild);
}
};中序遍历二叉树T
文档评论(0)