Dựa trên tính chất của cây tìm kiếm nhị phân, hãy viết hàm minimum(T) và maximum(T) tính giá trị khoá nhỏ nhất và lớn nhất của cây tìm kiếm nhị phân T.

Vận dụng

1. Dựa trên tính chất của cây tìm kiếm nhị phân, hãy viết hàm minimum(T) và maximum(T) tính giá trị khoá nhỏ nhất và lớn nhất của cây tìm kiếm nhị phân T. 


Dựa trên tính chất của cây tìm kiếm nhị phân (BST), giá trị nhỏ nhất của cây sẽ nằm ở nút lá bên trái cùng (nếu có) và giá trị lớn nhất sẽ nằm ở nút lá bên phải cùng (nếu có).

Dưới đây là cài đặt Python cho hai hàm minimum(T)maximum(T) để tính giá trị khoá nhỏ nhất và lớn nhất của cây tìm kiếm nhị phân T.

class TreeNode:

    def __init__(self, key):

        self.left = None

        self.right = None

        self.val = key

def minimum(T):

    # Duyệt qua các nút con bên trái cho đến khi không còn nút con nào nữa

    while T.left is not None:

        T = T.left

    return T.val

def maximum(T):

    # Duyệt qua các nút con bên phải cho đến khi không còn nút con nào nữa

    while T.right is not None:

        T = T.right

    return T.val

Giải thích:

  • Hàm minimum(T) sẽ duyệt qua cây từ nút gốc theo hướng sang trái cho đến khi không còn nút con nào bên trái nữa. Khi đó, nút hiện tại sẽ là nút có giá trị khoá nhỏ nhất của cây.
  • Tương tự, hàm maximum(T) sẽ duyệt qua cây từ nút gốc theo hướng sang phải cho đến khi không còn nút con nào bên phải nữa. Khi đó, nút hiện tại sẽ là nút có giá trị khoá lớn nhất của cây.

Giải những bài tập khác

Bình luận

Giải bài tập những môn khác