二叉树

什么是二叉树

二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树” (left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找和二叉堆。

二叉树有哪些种类

二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:

  • 空二叉树

  • 只一个根结点的二叉树

  • 只有左子树

  • 只有右子树

  • 完全二叉树

类型上有三种:

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

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

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

二叉树遍历

  • 前序遍历 根左右

  • 中序遍历 左根右

  • 后序遍历 左右根

  • 层次遍历 与对的层次遍历一样,基本思想从第一层开始,依次遍历每层

Golang 遍历代码示例

参考

Last updated

Was this helpful?