树的基本概念

树的基本概念

1.树的定义
树是n(n≥0)个结点的有限集合,当n=0时,称为空树;在任意一棵非空树中:
(1)有且仅有一个称为根的结点。
(2)其余结点可分为若干个互不相交的集合,而且这些集合中的每一集合本身又都是一棵树,称为根的子树。
2.树的基本术语
(1)父结点、子女结点、兄弟结点、祖先与子孙结点。
(2)结点的度、叶结点、根结点、分支结点。
(3)结点的深度和高度,树的深度和高度。
(4)路径和路径长度。
3.二叉树的定义
二叉树是n(n≥0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。
4.特殊的二叉树
(1). 斜树
所有结点都只有左子树的二叉树称为左斜树;所有结点都只有右子树的二叉树称为右斜树;左斜树和右斜树统称为斜树。
(2)满二叉树
所有分支结点都存在左子树和右子树;所有叶子都在同一层上。
(3)完全二叉树
对一棵具有n个结点的二叉树按层序编号,编号为i(1≤i≤n)的结点与同样深度的满二叉树中编号为i 的结点在二叉树中的位置完全相同。
5.二叉树的性质
(1) 一棵二叉树的第i层最多有2^(i–1)个结点(i>=1)。
(2)深度为k 的二叉树最多有2^k -1个结点.
(3) 若二叉树有n0个叶结点,有n2个度为2的结点,则 n0=n2+1
(4)具有n个结点的完全二叉树的深度为log2n+1或log2(n+1) 。
6.辨析
树的高度和深度值相等,但结点的深度和高度值不一定相等,深度是从上向下计算的,高度是从下向上计算的。
7.二叉树的存储
链式存储:

typedef struct BiNode{
   TElemType   data;                       //结点数据域
   struct  BiNode   *lchild,*rchild;    //左右孩子指针
}BiNode,*BiTree; 

表示要点:
使用二叉链表查找某结点左、右子女的时间代价为O(1),寻找其父结点的时间代价为O(n),为使寻找其父结点的时间代价为O(1),可构造三叉链表,增加一个父指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值