深度优先遍历dfp(先往深走,遇到叶子节点再往回走。)
- 前序遍历(递归法,迭代法)中左右
- 中序遍历(递归法,迭代法)左中右
- 后序遍历(递归法,迭代法)左右中
广度优先遍历(一层一层的去遍历)
- 层次遍历(迭代法)
递归的实现就是:每一次递归调用都会把函数的局部变量、参数值和返回地址等压入调用栈中,然后递归返回的时候,从栈顶弹出上一次递归的各项参数,
满二叉树
完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2^(h-1) 个节点。
优先级队列其实是一个堆,堆就是一棵完全二叉树,同时保证父子节点的顺序关系
平衡二叉搜索树:又被称为AVL(Adelson-Velsky and Landis)树,下图为二叉搜索树
随笔
- 叶子节点是指没有子节点的节点
- 对于二叉搜索树,不需要回溯的过程,因为节点的有序性就帮我们确定了搜索的方向。
- 空节点也可以说二叉搜索树
- 二叉搜索树和中序遍历是好朋友!(形式一样)
- 完全二叉树一定是平衡二叉树,堆的排序是父节点大于子节点,而搜索树是父节点大于左孩子,小于右孩子,所以堆不是平衡二叉搜索树。
- 一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。