树 相关知识点

深度优先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个子树

你可能感兴趣的:(数据结构)