深度优先DSF和GFS
Java深度 广度优先遍历 https://www.cnblogs.com/skywang12345/p/3711483.html
二叉搜索树BST的节点插入和删除:
插入:直接插在合适的叶节点位置
删除:
1、被删除节点为叶节点,直接删除
2、被删除节点只有左/右子树,将其用 左/右子树的根节点替换
3、被删除节点有左和右子树,将该节点用 树中序遍历时 该节点的直接前驱/直接后继替换,问题转化为删除该节点的直接前驱/直接后继。
AVL树旋转情况分类:
不平衡原因在于:
1、左子树比右子树深2: 若左子树的 左子树更深,则是LL,以根节点为轴进行旋转;若左子树的右子树更深,先以左子树的根节点为轴旋转,转完后得到的树变成LL,继续旋转即可。
2、右子树比左子树深2: 若右子树的 右子树更深,则是RR,以根节点为轴;若右子树的左子树更深,先以右子树的根节点为轴旋转,转完后得到的树变成RR,继续旋转。
其中以根节点为轴旋转相当于把根变为其某个子节点的子节点,把更深的子节点变为根的过程,转的时候会有嵌入的情况发生。
2-3树
允许两种节点:
1、1个键值,有两个子树
2、2个键值,有3个子树