每个数据都是一个结点(都是独立的对象,不连续),有一个地址值,包括元素和下一个结点的地址值。
前一个结点记录后一个结点的地址值
链表的查询比较慢,需要从头节点开始
链表的增删快,只需要在对应位置,插上对应的数据的地址,和下一结点的地址值 即可
节点详解:
特点:
1.每个节点上最多有2个子节点
2.每个节点的左子节点都小于节点
3.每个节点的右子节点都大于节点
添加节点规则:
查找结点方法:和添加规则一样的
1.前序遍历:从根出发:根->左->右
2.中序遍历:从左出发:左->中(当前结点)->右
3.后续遍历:从左出发:左->右->中
4.层序遍历:从根出发:根->左->右->下一层->根->左->右->
规则:任意结点的左右子树高度差不超过1
多种情况:找到不平衡点,将不平衡的右子节点晋升,不平衡点降级,原来的不平衡点的右子节点的左节点,变为不平衡的点的右子节点
2.右旋
确定支点:从添加的结点一个个的向上寻找,找到不平衡的点
和左旋简单版差不多
难度版:找到不平衡点,将不平衡的左子节点晋升,不平衡点降级,原来的不平衡点的左子节点的右节点,变为不平衡的点的左子节点
1972年成为二叉平衡树b树,是一种特殊的查找树,不是规则的树,通过红黑规则实现的
红黑规则:
默认添加节点的颜色是红色的这样的效率最高
添加规则多种
红黑树的增删改查性能比较好
image-20230912191405327" style=“zoom: 67%;” />