递归序,每个节点到达三次------树形DP的基础
先序:第一次到达某个节点就打印
中序:第二次到达某个节点就打印
后序:第三次到达某个节点就打印
二叉树的宽度优先遍历,既按层遍历,用队列实现。
为什么会出现二叉树?或者说二叉树为了解决什么问题而出现的?
将链表插入的灵活性和有序数组查找的高效性结合起来
为了解决链表中查找、插入最坏为O(n)的情况,数组中删除最坏移动元素O(n)的情况。
例如:数据库需要多次查找、更新操作,此时使用数组、链表这种数据结构会很慢。而二叉树则可以达到O(lgn)。
二叉查找树,(Binary Search Tree,二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
平衡树(Balance Tree) ,任意节点的子树的高度差都小于等于1。
BST 的中序遍历是升序的。