1 2 3 4

1、基本术语

  结点的度:树中一个结点的孩子个数

  树的度:树中某个结点的最大度数

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

  终端结点:度为0(没有子女结点)的结点称为叶子结点(又称终端结点)

  树的高度(或深度):是树中结点的最大层数。图中树的高度为4。

  有序树:树中结点的各子树从左到右是有次序的,不能互换

  无序数:树中结点的各子树是无次序的,可互换

  路径:两个结点之间所经过的结点序列

  路径长度:路径上所经过的边的个数

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

  二叉树:每个结点至多只有两棵子树( 即二叉树中不存在度大于2的结点)。二叉树是有序树,若将其左、右子树颠倒,则成为另一棵不同的二叉树

  斜树:所有的结点都只有左子树的二叉树叫左斜树。所有结点都是只有右子树的二叉树叫右斜树。这两者统称为斜树

  满二叉树:高度为n且有2n-1个节点

  完全二叉树:叶子结点只能出现在最下层和次下层,且最下层的叶子结点集中在树的左部

  二叉排序树:左子树上所有结点的关键字均小于根结点的关键字;右子树上的所有结点的关键字均大于根结点的关键字;左子树和右子树又各是一棵二叉排序树。

  平衡二叉树:树上任一结点的左子树和右子树的深度之差不超过1。

  线索二叉树:把这种指向前驱和后继的指针称为线索,加上线索的二叉链表称为线索链表,相应的二叉树就称为线索二叉树

         线索化的实质就是遍历一次二叉树,线索化的过程就是在遍历的过程中修改空指针的过程

        其结点结构如下所示:
        在这里插入图片描述

  哈夫曼树:在含有n个带权叶结点的二叉树中,其中带权路径长度(WPL)最小的二叉树称为哈夫曼树,也称最优二叉树

 

    例如,下图中的3棵二叉树都有4个叶子结点a, b,c,d,分别带权7,5,2,4,它们的带权路径长度分别为

    

    a. WPL = 7x2 + 5x2 + 2x2 + 4x2 = 36。

    b. WPL = 4x2 + 7x3 + 5x3 + 2x1 = 46。

    c. WPL = 7x1 + 5x2 + 2x3 + 4x3 = 35。
    其中,图c树的WPL最小。可以验证,它恰好为哈夫曼树。 

    具体参见:(40条消息) 数据结构:树(Tree)【详解】_UniqueUnit的博客-CSDN博客_数据结构树 


 

二、二叉树:  

  1、二叉树的存储结构:

    (1)顺序存储结构

       (2)链式存储结构

  2、二叉树的遍历:

    (1)先序遍历:根左右

    (2)中序遍历:左根右

    (3)后序遍历:左右根 

    (4)层次遍历:一层一层的遍历

    

 

posted @ 2022-04-09 19:38  日月星宿  阅读(59)  评论(0编辑  收藏  举报