Các thao tác trên cây nhị phân cân bằng

Một phần của tài liệu Các cấu trúc dữ liệu và giải thuật hiệu quả cho bài toán tìm kiếm (Trang 68 - 69)

Thêm vào cây cân bằng

Một số trƣờng hợp khi thêm nút vào cây nó vẫn giữ nguyên tính cân bằng nhƣng nó lại làm thay đổi hệ số cân bằng của một số nút liên quan. Có những trƣờng hợp khi thêm vào làm cho cây không cân bằng ở một số cây con. Khi đó ta phải cân bằng lại cây theo nguyên tắc từ cây con không cân bằng nhỏ nhất, mỗi cân bằng phải tính toán lại các hệ số cân bằng của các nút liên quan. Vậy một trong những lý do chính làm cho cây nhị phân tìm kiếm mất cân bằng là khi thêm một nút vào câỵ

Ví dụ: Ta thêm một nút vào cây có nút gốc là a thì nó sẽ có các khả năng xảy ra sau: Trƣờng hợp 1: a = nil (thêm vào cây trống). Khi thêm vào một đỉnh thì cây ở tình trạng cân bằng và hệ số cân bằng tại nút này bằng 0.

61

Trƣờng hợp 2: a ≠ nil và tại a có hệ số cân bằng là 0 khi đó (ậbal = 0). Trong trƣờng hợp này khi thêm nút mới vào cây gốc a không làm mất tính cân bằng của cây tại nút a (các cây con có thể không còn cân bằng).

Trƣờng hợp 3: a ≠ nil và tại a có ậbal = 1 (hoặc ậbal = -1). Trong trƣờng hợp này, nếu khi thêm nút mới vào cây gốc a không làm tăng độ cao của cây con phải (hoặc cây con trái) thì tại nút a tính cân bằng vẫn không thay đổị

Trƣờng hợp 4: a ≠ nil và tại a có ậbal = 1 (hoặc ậbal = -1). Nếu ta thêm nút mới vào cây con bên phải (hoặc thêm vào cây con bên trái) của a và làm tăng chiều cao của cây con. Trƣờng hợp này tại nút a tính cân bằng bị phá vỡ.

Xóa khỏi cây cân bằng

Từ thao tác xóa trên cây nhị phân tìm kiếm và thao tác thêm trên cây cân bằng nên ta có thể thực hiện tƣơng tự cho thao tác xóa trên cây cân bằng. Nhƣng thao tác xóa trên cây cân bằng nó thực hiện phức tạp hơn. Trong khi thực hiện các thao tác xóa chúng ta vẫn sử dụng các thủ tục nhƣ quay trái (RotateLeft) và quay phải (RotateRight). Mỗi khi xóa một nút cũng có thể làm thay đổi chiều cao và phá vỡ tính cân bằng của một số nút liên quan. Trong trƣờng hợp này ta cũng thực hiện cân bằng lại cây tại các nút không cân bằng tƣơng tự nhƣ thao tác thêm.

Một phần của tài liệu Các cấu trúc dữ liệu và giải thuật hiệu quả cho bài toán tìm kiếm (Trang 68 - 69)

Tải bản đầy đủ (PDF)

(110 trang)