在开始之前,应该先讲一下什么是二叉树。
什么是二叉树?
二叉树
一个null树也叫做二叉树,就算只有一个根节点,也是二叉树
左斜树&右斜树
二叉树中每个节点方向相同,全部节点只有左子节点的称为左斜树,只有右子节点的称为右斜树。
满二叉树
除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树。
完全二叉树
完全二叉树是由满二叉树而引出来的,若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数(即1~h-1层为一个满二叉树),第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
什么是二分搜索树(Binary Search Tree)?
- 二分搜索树是二叉树;
- 二分搜索树的每个节点的值大于其左子树所有节点的值,小于其右子树的所有节点的值,简称 左小右大;
- 每一颗字数也是二分搜索树;
- 存储的元素必须有可比较性;
二叉树的遍历
前序遍历
先遍历 节点e,再遍历左子树,最后遍历右子树
中序遍历
先遍历 左子树,再遍历节点e,最后遍历右子树
后序遍历
先遍历左子树,再遍历右子树,最后遍历节点e