Trình bày thuật toán xác định giá trị * = 34 có thuộc cây tìm kiếm nhị phân được biểu diễn ở Hình 4b hay không.
Bằng cách nhấp vào Đăng nhập, bạn đồng ý Chính sách bảo mật và Điều khoản sử dụng của chúng tôi. Nếu đây không phải máy tính của bạn, để đảm bảo an toàn, hãy sử dụng Cửa sổ riêng tư (Tab ẩn danh) để đăng nhập (New Private Window / New Incognito Window).
Thuật toán để xác định giá trị * = 34 có thuộc cây tìm kiếm nhị phân được biểu diễn ở Hình 4b hay không được thực hiện bằng cách duyệt cây từ gốc xuống đến khi tìm thấy giá trị hoặc đến khi không còn nút nào để duyệt.
Thuật toán như sau:
Cách 1: Sử dụng các phép toán duyệt trước, duyệt giữa, duyệt sau để xác định giá trị x = 34 có thuộc cây tìm kiếm nhị phần ở Hình 4 hay không.
Ví dụ: Sử dụng phép duyệt trước để tìm giá trị x
def insertTree(T, i, v):
if 1 >= len(T):
T.extend([None]*(i-len(T)+1))
if T[i]== None:
T[i]= v== quân thi sáng ngà
print("Đã tồn tại nút có giá trị bằng", v)
elif v insertTree(T, 2*1+ 1, v) else: insertTree(T, 2*i +2, v) def createBSTTree(T, a): for v in a: insertTree (T, 0, v) def preorderSearch (T, i, x): global found if i < len(T) and T[1] != None: if T[i] == x: found = True return else: preorderSearch(T, 2*i + 1, x) preorderSearch(T, 2*1 + 2, x) def Search(T, x): global found found = False preorderSearch(T, 0, x) return found a =list(map (int, input().split())) x = int(input()) T = [] createBSTTree(T, a) found Search(T, x) print (found) Cách 2: Sử dụng thuật toán đệ quy search(T, i, x) để tìm kiếm x trên cây tìm kiếm nhị phân T gốc i. Mã nguồn hàm tìm kiếm giá trị trên cây tìm kiếm nhị phân sử dụng đệ quy: Em có thể sử dụng đệ quy hoặc vòng lặp để tìm một nút trên cây tìm kiếm nhị phần. Hàm đệ quy search(T, i, x) dùng để tìm kiếm giá trị x trên cây tim kiếm nhị phần T gốc i. #Tìm x trên cây tìm kiếm nhị phân T gốc 1 def search(T, i, x): if i >= len(T) or T[i] == None: return False X: #Cây T gốc i là rỗng #không tìm thấy x #Tìm thấy x elif T[i] return True elif x else: return search(T, 2*1+2, x) #Tim x trên cây con phải return search(T, 2*1+1, x) #Tim x trên cây con trái
Tham gia Cộng đồng Lazi trên các mạng xã hội | |
Fanpage: | https://www.fb.com/lazi.vn |
Group: | https://www.fb.com/groups/lazi.vn |
Kênh FB: | https://m.me/j/AbY8WMG2VhCvgIcB |
LaziGo: | https://go.lazi.vn/join/lazigo |
Discord: | https://discord.gg/4vkBe6wJuU |
Youtube: | https://www.youtube.com/@lazi-vn |
Tiktok: | https://www.tiktok.com/@lazi.vn |
Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi
Vui | Buồn | Bình thường |