数据结构 | 树之二叉树




  • 树在计算机科学的各个领域中被广泛应用,包括操作系统,图形学,数据库系统和计算机网络。树结构和自然界的树有许多相似的地方,也有根、枝和叶,它们的不同之处在于计算机中的树结构根在顶部而叶子则在底部。

二叉树

  • 二叉树是每个结点最多有两个子树的树结构。

二叉树的遍历

  • 前序遍历(preorder):在前序遍历中,我们先访问根节点,然后递归地前序遍历访问左子树,再递归地前序遍历访问右子树。
  • 中序遍历(inorder):在中序遍历中,我们递归地中序遍历访问左子树,然后访问根节点,最后再递归地中序遍历访问右子树。
  • 后序遍历(postorder):在后序遍历中,我们先递归地后序遍历访问左子树和右子树,最后访问根节点。

完全二叉树

  • 若设二叉树的高度为,除第层外,其它各层的结点数都达到最大个数,第层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。

满二叉树

  • 除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。

平衡二叉树

  • 平衡二叉树又被称为AVL树(区别于AVL算法),它是一棵二叉排序树,且具有以下性质:
    • 它是一棵空树或它的左右两个子树的高度差的绝对值不超过,并且左右两个子树都是一棵平衡二叉树。

二叉树性质

  • 在非空二叉树中,第层的结点总数不超过;
  • 深度为的二叉树最多有个结点,最少有个结点;
  • 对于任意一棵二叉树,如果其叶结点数为,而度数为的结点总数为,则;
  • 具有个结点的完全二叉树的深度为(注:向下取整)
  • 有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系:
    1. 若为结点编号则如果,则其父结点的编号为;
    2. 如果,则其左孩子的编号为;若,则无左孩子;
    3. 如果,则其右孩子的结点编号为;若,则无右孩子。
  • 给定个结点,能构成种不同的二叉树。为卡特兰数的第N项,即。

你可能感兴趣的:(数据结构 | 树之二叉树)