- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
遍历二叉树和线索二叉树.ppt
第六章 树和二叉树;6.1 树的定义和基本术语;6.1 树的定义和基本术语;A;数据对象 D:; Root(T) // 求树的根结点 ;InitTree(T) // 初始化置空树 ; ClearTree(T) // 将树清空 ;(1) 有确定的根;
(2) 树根和子树根之间为有向关系。;对比树型结构和线性结构的结构特点;结点:;孩子结点、
双亲结点
兄弟结点、堂兄弟
祖先结点、
子孙结点;任何一棵非空树是一个二元组
Tree = (root,F)
其中:root 被称为根结点
F 被称为子树森林; 6.2 二叉树;二叉树的五种基本形态:;二叉树的性质:
性质1: 在二叉树的第i层上至多有2i-1个结点(i=1)。
采用归纳法证明此性质。
当i=1时,只有一个根结点,2i-1=20 =1,命题成立。
现在假定多所有的j,1=ji,命题成立,即第j层上至多有2j-2个结点,那么可以证明j=i时命题也成立。由归纳假设可知,第i-1层上至多有2i-2个结点。
由于二叉树每个结点的度最大为2,故在第i层上最大结点数为第i-1层上最大结点数的二倍,
即2×2i-2=2i-1。
命题得到证明。;性质2:深度为k的二叉树至多有 个结点(k?1);由于这些分支都是由度为1和2的结点射出的,所有有:
B=n1+2*n2
N=B+1=n1+2×n2+1 (6-2)
由式(6-1)和(6-2)得到:
n0+n1+n2=n1+2*n2+1
n0=n2+1; 几种特殊形式的二叉树
满二叉树
定义:;完全二叉树
定义:深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为~
特点
叶子结点只可能在层次最大的两层上出现
对任一结点,若其右分支下子孙的最大层次为l,则其左分支下子孙的最大层次必为l 或l+1;证明:;1;性质5:如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1?i?n),有:
(1) 如果i=1,则结点i是二叉树的根,无双亲;如果i1,则其双亲是?i/2?
(2) 如果2in,则结点i无左孩子;如果2i?n,则其左孩子是2i
(3) 如果2i+1n,则结点i无右孩子;如果2i+1?n,则其右孩子是2i+1;; 在此过程中,可以从(2)和(3)推出(1),所以先证明(2)和(3)。
对于i=1,由完全二叉树的??义,其左孩子是结点2,若2n,即不存在结点2,此是,结点i无孩子。结点i的由孩子也只能是结点3,若结点3不存在,即3n,此时结点i无右孩子。
对于i1,可分为两种情况:
(1)设第j(1=j=[log2n])层的第一个结点的编号为i,由二叉树的性质2和定义知i=2j-1
结点i的左孩子必定为的j+1层的第一个结点,其编号为2j=2×2j-1=2i。如果2in,则无左孩子:
;其右孩子必定为第j+1层的第二个结点,编号为2i+1。若2i+1n,则无右孩子。
(2)假设第j(1=j=[log2n])层上的某个结点编号为i(2e(j-1)=i=2ej-1),且2i+1n,其左孩子为2i,右孩子为2i+1,则编号为i+1的结点时编号为i的结点的右兄弟或堂兄弟。若它有左孩子,则其编号必定为2i+2=2×(i+1):若它有右孩子,则其编号必定为2i+3=2×(i+1)+1。
当i=1时,就是根,因此无双亲,当i1时,如果i为左孩子,即2×(i/2)=i,则i/2是i的双亲;如果i为右孩子,i=2p+1,i的双亲应为p,p=(i-1)/2=[i/2]. 证毕。
;顺序存储结构
实现:按满二叉树的结点层次编号,依次存放二叉树中的数据元素
特点:
结点间关系蕴含在其存储位置中
浪费空间,适于存满二叉树和完全二叉树;typedef struct node
{ datatype data;
struct node *lchild, *rchild;
}JD;;6.3 遍历二叉树和线索二叉树;A;二叉树的遍历
方法
先序遍历:先访问根结点,然后分别先序遍历左子树、右子树
中序遍历:先中序遍历左子树,然后访问根结点,最后中序遍历右子树
后序遍历:先后序遍历左、右子树,然后访问根结点
按层次遍历:从上到下、从左到右访问各结点;A;A;A;-;遍历算法应用
按先序遍历序列建立二叉树的二叉链表,已知先序序列为:
A B C ? ? D E ? G ? ? F ? ? ?;线索二叉树;指向该线性序列中的
您可能关注的文档
最近下载
- DB41_T 415-2005 欧美杨立木材积及出材率表(河南省).pdf VIP
- 乐高搭建图纸—18 旋转杯子18.pdf VIP
- MOC-0880 8067 乐高自定义港口.pdf VIP
- (正式版)H-G∕T 5896-2022 高纯空气.docx VIP
- 安徽省芜湖市区2024-2025学年七年级下学期期末考试英语试卷(含答案,无听力).pdf VIP
- 2025 党校入党积极分子预备党员考试题库(含答案).docx VIP
- (高清版)-B-T 30146-2023 安全与韧性 业务连续性管理体系 要求.pdf VIP
- 猫病诊疗技术—猫静脉留置针放置技术.pptx VIP
- 保温装饰一体板施工技术交底.docx VIP
- 征信报告模板2025年新版可编辑带水印.pdf
文档评论(0)