二 二叉树(Binary tree):指树中的节点最多只能有两个子节点,一个是左子节点,一个是右子节点。左右子节点的顺序不能颠倒。即二叉树中不存在度大于2的节点树。二叉树的遍历有两种选择:
1 深度优先搜索(Depth-First Search,DFS):(前中后序是相对根节点而言)
- 前序遍历:根节点优先,之后是左节点,最后是右节点。
- 中序遍历:左节点优先,之后是根节点,最后是右节点。
- 后序遍历:左节点优先,之后是右节点,最后是根节点。
2 广度优先搜索(Breadth-First Search,BFS):BFS是一层层逐渐深入的遍历算法
三 二叉搜索树(BST——Binary Search Tree)是二叉树的一种,它规定在左子节点上存储小(比父节点)的值,在右子节点上(比父节点)存储大(或等于)的值。
- 自平衡二叉搜索树(AVL——Adelson-Velskii-Landi)。在AVL中,任何一个节点左右两棵子树的高度之差最多为1,添加或移除节点时,AVL树会尝试自平衡。对AVL树的操作和对BST树的操作一样,不同点在于我们还需要重新平衡AVL树
- 红黑树也是一种自平衡二叉搜索树,但是它对其中的节点做了很多特殊的规定,使得在操作树节点的性能上要优于AVL。
推荐阅读: