目录

AVL and 2-4 Trees, Divide and Conquer Algorithms

Gtx CS1332x III Notes


AVLs

BST Review

BST Add
Add 的实现

public void add(T data):
    root <- rAdd(root, data)
private Node rAdd(Node curr, T data):
    //base case
    if curr == null:
        size++
        return new Node(data)
    else if data < curr.data:
        curr.left <- rAAdd(curr.left, data)
    else if data > curr.data:
        curr.right <- rAdd(curr.right, data)
    return curr

注意条件中并没有 ==,这种情况下,如果有重复的元素,那么会直接返回该重复的元素,并链接到其父节点上。这不会改变任何 BST 中已有的内容。

BST Remove

参考这里

Introduction to AVLs

Definition of Unbalanced

AVL Rotations