在数据结构中对于树和二叉树的基本认识

© Fu Xianjun. All Rights Reserved.

树和二叉树的基本认识

简介
树(Tree)是数据节点之间具有层次关系的非线性结构。在树结构中,根节点没有前驱节点;除根节点外的节点只有一个前驱节点,有零或多个后继节点。

1.树

1.1 树的定义
树是有n(n>0)个节点的有限集合T,若n=0,则称为空树。n>0的树由以下条件构成。
(1)有且只有一个特定的节点,称为树的根(root)节点。
(2)若n>1,其余节点被分为m(m>0)个互不相交的子集T1、T2、T3、……、Tm,其中,每 个子集Ti本身又是一棵树,称其为根的子树。

1.2 基本术语
1.节点
树的节点可以包含一个数据元素和若干指向其子树的分支。节点可以分为根节点、叶子节点(或终端节点)、非叶子节点(或非终端结点或分支节点)。节点之间的关系有孩子结点、双亲节点、兄弟节点、堂兄弟节点。
2.节点的度
节点所拥有的子树的棵树称为节点的度。
3.叶子节点
树中度为0的节点称为叶子节点。
4.非叶子节点
树中度不为0的节点称为非叶子节点。
5.孩子节点和双亲节点
节点的子树的根称为该节点的孩子节点或子节点。
6.兄弟节点
同一双亲节点的所以子节点互称为兄弟节点。
7.堂兄弟节点
双亲节点在同一层上的所有节点互称为堂兄弟节点。
8.树的度
树中节点度的最大值称为树的度。
9.层次
术中根节点的层次规定为1,其余节点的层次等于其双亲节点的层次加1。若某节点在第n(n>=1)层,其子节点在第n+1层。
10.节点的层次路径
从根节点开始,到达某节点p所经过的所有节点组成的路径称为节点p的层次路径(有且只有一条)。
11.节点的祖先
节点p的层次路径上的所有节点(p除外)称为p的祖先。
12.子孙的节点
以某一节点为根的子树中的任意节点称为该节点的子孙节点。
13.树的高度
树中节点的最大层次值又称为树的高度。
14.森林
m(m>=0)棵互不相交的树的集合称为森林。显然,若将一棵树的根节点删除,则剩余的子数就构成了森林。
15.有序树和无序树
如果将树中节点的各子树看作从左到右是有次序的。不能互换,则称该树为有序数,否则称为无序树。

1.3 存储结构
树的存储结构有双亲表示法、孩子表示法、孩子兄弟表示法。


2.二叉树

2.1.二叉树的定义
二叉树(Binary tree)是n(n>=0)个节点的有限集合。n=0时称为空树,否则:
(1)有且只有一个特殊的节点称为树的根节点。
(2)若n>0,则其余节点被分成两个互不相交的子集T1、T2,分别称为左、右子树,并且左、右子 树都是二叉树。

2.2二叉树的基本形态
(1)空二叉树,没有节点,即该二叉树有0个节点。
(2)单节点二叉树,即只有一个节点的二叉树。
(3)右子树为空的二叉树,即没有右子树。
(4)左子树为空的二叉树,即没有左子树。
(5)左、右子树都不为空的二叉树。

2.3满二叉树和完全二叉树
1.满二叉树的定义
一颗高度为K且有2的k次方减1个节点的二叉树称为满二叉树。
2.满二叉树的特点
(1)叶子节点只能出现在最后一层。
(2)非叶子节点都在左、右子树。
(3)在同样高度的二叉树中,满二叉树的节点个数最多,叶子数最多。
3.完全二叉树的定义
高度为k,有n个节点的二叉树,当且仅当其每一个节点都与高度为k的满二叉树中编号从1到n的节点一一对应时,该二叉树才称为完全二叉树。满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。
4.完全二叉树的特点
(1)叶子节点只能出现在最后两层。
(2)最下层的叶子一定集中在左边连续位置上。
(3)倒数第二层如有叶子节点,则一定都在右边连续位置上。
(4)如果节点度为1,则该节点只有左子树,不存在右子树。
(5)同样节点树的二叉树,完全二叉树高度最小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值