二叉查找树/二叉排序树/二叉搜索树、二叉平衡(查找)树


二叉树性质:

  1. 在二叉树的第 i 层上至多有2i-1个结点。
  2. 深度为 k 的二叉树上至多含 2k-1 个结点(k≥1)
  3. 对任何一棵二叉树,若它含有n0个叶子结点、n2个度为 2 的结点,则必存在关系式:n0= n2+1。
  4. 具有 n 个结点的完全二叉树的深度为⎣log2 n⎦+1 。
  5. n个结点的二叉树中,完全二叉树具有最小的路径长度。
  6. 如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1<=i<=n),有: 
    • 如果i=1,则结点i无双亲,是二叉树的根;如果i>1,则其双亲的编号是 i/2(整除)。
    • 如果2i>n,无左孩子;否则,其左孩子是结点2i。
    • 如果2i+1>n,则结点i无右孩子;否则,其右孩子是结点2i+1。

二叉平衡树肯定是一颗二叉排序树。堆不是一颗二叉平衡树。

平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果插入或者删除一个节点使得高度之差大于1,就要进行节点之间的旋转,将二叉树重新维持在一个平衡状态。这个方案很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维持在O(logN)。但是频繁旋转会使插入和删除牺牲掉O(logN)左右的时间,不过相对二叉查找树来说,时间上稳定了很多。

猜你喜欢

转载自blog.csdn.net/qq_37668377/article/details/81011697