数据结构--树(概念篇)

目录

一、基本术语

二、二叉树

1、特点

2、性质

3、二叉树的类型

4、点数求解

三、哈夫曼树 (最优二叉树)


一、基本术语

  • 结点(node): 树的元素,含数据项及若干指向其子树的分支
  • 结点的度(degree): 结点拥有的子树数
  • 叶子(leaf): 度为 0 的结点
  • 分支结点: 度不为零的结点,也称为非终端结点
  • 树的度: 一棵树中最大的结点度数
  • 孩子(child):结点的子树的根
  • 双亲(parents):孩子结点的上层结点
  • 兄弟(sibling):同一双亲的孩子
  • 结点层次(level):根为第 1 层,根的孩子为第 2 层……
  • 树的深度/高度(depth):树中结点的最大层次数

         对于树的高度和深度说法不一,但我更倾向于这种
        一个节点的高度 = 该节点到最下层节点的边数
        一个节点的深度  = 该节点到根节点的边数
        空树 节点的高度 = 深度 = -1

  • 子孙:一个结点所有子树中的结点。
  • 祖先:从根结点到达某结点路径上的所有结点。
  • 有序树/无序树:如果树中结点的各子树从左到右是有次序的,则称该树为有序树
  • 森林(forest):m(≥0) 棵互不相交的树的集合

二、二叉树

1、特点

  • 每个结点至多有二棵子树
  • 二叉树的子树有左、右之分,且其次序不能任意颠倒
  •  二叉树有·n个结点 n>=0

2、性质

  1. 二叉树的第 i(≥1) 层上至多有 2^(i-1) 个结点
  2. 深度为 k(≥1) 的二叉树至多有 2^k-1 个结点
  3. 任何一棵二叉树 T,如果其叶子数为 n0,度为 2 的结点数为 n2,则 n0=n2+1
  4. 有 n 个结点的完全二叉树深度 log2⁡(𝑛 +1)
  5. 对有 n 个结点的完全二叉树按层编号,则对任一结点 i(1≤i≤n),有:

        若 i=1,则结点 i 是二叉树的根,无双亲;
        若 i>1,则其双亲编号=(i/2)
        若 2i>n,则结点 i 无左孩子;
        如果 2i≤n,则其左孩子编号=2i
        若 2i+1>n,则结点 i 无右孩子;
        如果2i+1≤n,则其右孩子编号=2i+1

3、二叉树的类型

  • 满二叉树

        深度为 k 且有 2k-1 个结点的二叉树

        每层上的结点数都是最大值,叶结点都集中在二叉树的最下一层

  • 完全二叉树

       除了最后一层,其余层级必须全部填满,最后一层没填满的要靠左

         深度为 k、有 n 个结点的完全二叉树当且仅当,其每一个结点都与深度为 k 的满二叉树中编号从 1 至 n 的结点一一对应

        顺序存储不会浪费空间,满二叉树是完全二叉树的子集

  • 严格二叉树

        每个节点都是0个或2个孩子

  • 二叉搜索(排序)树

        对于每个节点,其值大于左子树所有节点的值,小于右子树所有节点的值

  • 平衡二叉树

        是二叉搜索树

        对于每个节点,左子树和右子树的高度之差不大于 k 一般为1

  • 红黑树

4、点数求解

对于结点数为n的二叉树,如果其叶子数为 n0,度为 2 的结点数为 n2,度为1的结点数为n1则有:

  • n0=n2+1   
  • n=n0+n1+n2 
  • 度之和=n-1 (分支数比结点数少1)
  • 度之和=n1+2n2 (分支数与度为1、度为2相关)
  • n= n1+2n2+1

三、哈夫曼树 (最优二叉树)

  • 设有 n 个权值 {w1,w2,……wn}
  • 构造有 n 个叶结点的二叉树,其叶子结点的权值=wi
  • WPL 最小的二叉树叫 Huffman 树
  • 权值越大的叶结点越靠近根结点,反之,权值越小的叶结点越远离根结点。
  • 没有度为1的结点

 

  •  练习

        w = { 5,  29,  7,  8,  14,  23,  3,  11 }

            构造不唯一

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值