4.树

2021-12-17  本文已影响0人  LucXion

树的基本概念

节点、根节点、父节点、子节点、兄弟节点(同层节点不一定是兄弟节点,兄弟节点必须有同一个父节点)

二叉树(Binary Tree)

  1. 每个节点的度最大为2
  2. 左子树和右子树是有顺序的
  3. 即便节点只有一棵树,也区分左子树、右子树

真二叉树(Full Binary Tree):所有的节点的度要么为0要么为2

满二叉树(Perfect Binary Tree):真二叉树,且所有叶子节点都在最后一层

完全二叉树:叶子节点在最后两层,编号为i的节点与满二叉树中编号为i的节点在二叉树中位置相同。由此得出:度为1的节点数要么为0,要么为1,且一个度的节点为左节点。

完全二叉树的特性

节点相同的二叉树中,完全二叉树高度最小

假设完全二叉树的高度为h(h>1),那么

最少节点数为:2h-1=20+21+22+...+2h-2+1

最大节点数为:2h-1=20+21+22+...+2h-1(满二叉树)

总结点数n:

2h-1≤n<2h

h-1≤log2n<h

floor 向下取整函数
ceiling 向上取整函数

根节点为1,第i个编号:父节点=floor(i/2),左节点=ix2,右节点ix2+1

根节点为0,第i个编号:父节点=floor((i-1)/2),左节点=ix2+1,右节点ix2+2

将完全二叉树的节点分为三部分,叶子节点为n0,度为2的节点为n1,度为2的节点为n2,那么总结点 n = n0+n1+n2,其中,n0 = n2+1,n1 = 0或者1,由此推出,n = 2*n2+n1

上一篇 下一篇

猜你喜欢

热点阅读