几种常见的树的定义
树 | 定义 |
---|---|
完全二叉树 | 除了最后一层外都填满,最后一层有叶子节点,并且从左到右排布 |
满二叉树 | 每一层全部填满(国内定义) |
二叉搜索树(BST) | 左子树全部节点<根节点<右子树全部节点 |
平衡二叉树(AVL树) | 是BST,并且它的左右两个子树的高度差的绝对值不超过1 |
红黑树 | 自平衡的BST,可以在插入、删除等操作时维持二叉树的平衡 |
最大堆 | 父节点的值大于其子节点的值 |
最小堆 | 父节点的值小于其子节点的值 |
B树 | 多路的搜索树,主要用于文件的索引 |
B+树 | 在B树的基础上,添加了区间查询功能 |
B*树 | 比B+数的空间使用率更高 |
二叉搜索树BST
红黑树
树的遍历
1.深度优先搜索(DFS)方法
前序遍历
- 递归法
- 迭代法
中序遍历
- 递归法
- 迭代法
后续遍历
- 递归法
- 迭代法
2.广度优先搜索(BFS)方法
层序遍历
- 递归法
- 迭代法