树和二叉树知识要点(期末必考)

树和二叉树

什么是树?

树是由n(n>=0)个节点组成的有限集合(树中元素通常称为节点)。n=0的树称为空树

树形结构是非线性数据结构。
在这里插入图片描述

:一个特殊的节点,它只有后继结点,没有前驱结点。

子树:除根节点外的其他节点分为m个互不相交的结点,其中每个集合为根的子树。

有序树:子树之间映射客观存在的次序关系(子树次序不能调换)。

无序树:子树之间不存在次序关系,即子树次序能够调换。

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

结点的知识

结点:包含了数据元素及若干个指向其子树的分支。

结点的度:结点的子树数目或分支个数。

树的度:在树中取各结点的度的最大值.

分支结点(又称非终端结点):度大于零的结点。

叶子结点(又称终端结点):度为零的结点。

结点的路径:根结点到该结点所经分支和结点构成结点的路径。

结点的路径长度:根结点到该结点路径上所经分支的数目。

结点的层次:设根结点的层次为1,则其子树的根结点层次为2:第L层结点的子树的根结点层次为L+1.

树的深度:树中结点(该结点必为树叶结点)的最大层次。

孩子结点及双亲结点:结点的子树的根结点称为该结点的孩子结点,该结点又称为孩子结点的双亲结点。

兄弟结点:拥有同一个双亲结点的若干个结点互称为兄弟结点。

堂兄弟结点:在同一层次上, 但双亲结点不同的若干个结点称为堂兄弟结点。

祖先结点:根结点到该结点路径上的所有结点均为该节点的相先结点。

子孙结点:某结点的于树中所包含的所有结点均为该结点的子孙结点。

二叉树

二叉树:n(n>=0)个结点的有限集,当n=0时,二叉树为空;

当n>0时,二叉树由一个根结点及至多两颗互不相交的左右子树组成,且左右子树都是二叉树。

特殊二叉树:

满二叉树:一颗深度为k的二叉树若每一层上的结点数都达到最大

完全二叉树:一颗具有n个结点且深度为k的二叉树若前k-1层的结点数都达到最大,剩余的结点在第k层中从左至右连续分布
在这里插入图片描述

二叉树的性质

二叉树的性质1:在二叉树的第i层上至多有2^i-1个结点(i≥1)。

二叉树的性质2:深度为k的二叉树至多有2*-1个结点(k≥1)。

二叉树的性质3:对任意的一棵二叉树,如果其终端结点数为n0,度为2的结点数为n2,则有n0=n2+1。

二叉树的性质4:具有n个结点的完全二叉树的深度为[lbn]+1。

二叉树的性质5:如果对一棵具有 n个结点的完全二叉树从1到n对每一结点进行层序编号,则有:

①若i=1,则第i个结点是二叉树的根,无双亲。若i>1,则其双亲结点的位置是i/2。

②若2i>n,则第i个结点为叶子结点,无左孩子;否则,其左孩子结点的位置是2i。

③若2i+1>n,则第i个结点无右孩子;否则,其右孩子结点的位置是2i+1。

二叉树的遍历

1.先序遍历(DLR)若树不空,则先访问根结点,然后依次先根遍历各棵子树。

2.中序遍历(LDR)

3.后序遍历(LRD) 若树不空,则先依次后根遍历各棵子树,然后访问根结点。

4.层次遍历 :若树不空,则自上而下自左至右访问树中每个结点。

Huffman树

各路径的定义

结点的路径长度定义为:从根结点到该结点的路径上分支的数目。

树的路径长度定义为:树中每个结点的路径长度之和。

树的带权路径长度定义为: 树中所有叶子结点的带权路径长度之和。

注: 在所有含 n 个叶子结点、并带相同权值的 m 叉树中,必存在一棵其带权路径长度取最小值的树,称为“最优树”(哈夫曼树)。

哈夫曼树定义:为带权外路径长度最短的二叉树。
哈夫曼树不唯一
在这里插入图片描述

posted @ 2020-12-05 21:53  是小徐呀!  阅读(9)  评论(0编辑  收藏  举报  来源