【树】树、二叉树的基础知识

定义:

树是n(n≥0)个结点的 有限集合T。当 n=0时,称为 空树;当n>0时,该集合满足如下条件:
(1) 其中必有一个称为根(root)的特定结点,它 没有直接前驱,但有零个或多个直接后继。
(2) 其余n-1个结点可以划分成m(m≥0)个 互不相交的有限集T1,T2,T3,…,Tm,其中Ti又是一棵树,称为根root的子树。每棵子树的根结点 有且仅有一个直接前驱,但有零个或多个直接后继。

这是一个递归的定义,树里面还有子树,树型结构是一个一对多的结构。

【树】树、二叉树的基础知识_第1张图片

基本术语:

结点的度(Degree):结点拥有的子树数量; D的度为3

叶子(Left)/终端结点:度为0的结点;KLFGMIJ

分支结点/非终端接结点:度不为0的结点;

树的度:树内各结点的度的最大值;3

孩子(Child):结点的子树的根为该结点的孩子(结点的直接后驱);BCD是A的孩子

双亲结点(Parent):一个结点的直接前驱; A是BCD的双亲

兄弟结点(Sibling):同一个双亲的孩子之间互称; BCD

堂兄弟:其双亲在同一层的结点; KM

祖先:从根到该结点所经分支上的所有结点; E的祖先为AB

子孙:以某结点为根的子树中的任一结点; B的子孙为EK

层次:从根开始定义,根为第一层,根的孩子为第二层。(也可以把根看成第0层)

深度:根的深度为0,其他结点深度为从根到此结点的唯一路径长。

森林:m(m>=0)棵互不相交的树的集合

无序树/自由树:树中任意结点的子结点之间没有顺序关系。反之为有序树。

二叉树

定义:

我们把满足以下两个条件的树形结构叫做二叉树(Binary Tree):
(1)每个结点的度都不大于2;
(2)每个结点的孩子结点次序不能任意颠倒。

一个二叉树中的每个结点只能含有0、1或2个孩子,而且每个孩子有左右之分。位于左边的孩子叫做左孩子,位于右边的孩子叫做右孩子。

性质:

若二叉树的层次从0开始,则在二叉树的第i层最多有2^i个结点

高度为k的二叉树最多有2^(k+1)-1个结点。(k>=-1)

若二叉树叶结点的个数为n0,度为2的结点个数为n2,则n0 = n2+1;

满二叉树:每一层的结点都达到最大个数,若每层从右向左依次缺省,就为完全二叉树

【树】树、二叉树的基础知识_第2张图片

具有n个结点的完全二叉树的高度为|log(n+1)|-1,向上取整

二叉树的存储

顺序存储

数组存放树都是存放的完全二叉树,当有空时也必须存东西,可以用其他符号表示空,因为数组存放的是一个逻辑关系。

【树】树、二叉树的基础知识_第3张图片

链式存储

【树】树、二叉树的基础知识_第4张图片

静态结构

数据+关系

【树】树、二叉树的基础知识_第5张图片

你可能感兴趣的:(算法和数据结构,数据结构)