Giao diện mới của VnDoc Pro: Dễ sử dụng hơn - chỉ tập trung vào lớp bạn quan tâm. Vui lòng chọn lớp mà bạn quan tâm: Lưu và trải nghiệm
Đóng
Điểm danh hàng ngày
  • Hôm nay +3
  • Ngày 2 +3
  • Ngày 3 +3
  • Ngày 4 +3
  • Ngày 5 +3
  • Ngày 6 +3
  • Ngày 7 +5
Bạn đã điểm danh Hôm nay và nhận 3 điểm!
Nhắn tin Zalo VNDOC để nhận tư vấn mua gói Thành viên hoặc tải tài liệu Hotline hỗ trợ: 0936 120 169

Giải Chuyên đề Tin học 12 Cánh diều bài 2: Thực hành duyệt cây nhị phân

Lớp: Lớp 12
Môn: Tin Học
Dạng tài liệu: Chuyên đề
Bộ sách: Cánh diều
Loại File: Word + PDF
Phân loại: Tài liệu Tính phí

Bài 2: Thực hành duyệt cây nhị phân

VnDoc.com xin gửi tới bạn đọc bài viết Giải Chuyên đề Tin học 12 bài 2: Thực hành duyệt cây nhị phân để bạn đọc cùng tham khảo. Mời các bạn cùng tham khảo thêm tại mục Tin học 12 Cánh diều nhé.

Vận dụng trang 41 Chuyên đề Tin 12 Cánh diều

Từ ví dụ cây nhị phân tổng quát trong Hình 10 dưới đây, em hãy lập trình thực hiện các nhiệm vụ sau:

a) Bổ sung các nút giá và xây dựng. cây nhị phân hoàn chỉnh bằng cách thêm từng nút giả vào cây. Khóa các nút nhập vào lần lượt từ bản phim, nút giả có giá trị là 0.

b) Đưa ra danh sách các nút từ cây nhị phân vừa xây dựng theo các thủ tự trước, thứ tự sau và thứ tự giữa.

Giải Chuyên đề Tin học 12 Cánh diều bài 2: Thực hành duyệt cây nhị phân

Lời giải:

Chương trình Python như sau:

class TreeNode:

def __init__(self, value):

self.value = value

self.left = None

self.right = None

def insert_node(root, value):

if root is None:

return TreeNode(value)

else:

if value < root.value:

root.left = insert_node(root.left, value)

else:

root.right = insert_node(root.right, value)

return root

def in_order_traversal(root):

if root:

in_order_traversal(root.left)

print(root.value, end=" ")

in_order_traversal(root.right)

def pre_order_traversal(root):

if root:

print(root.value, end=" ")

pre_order_traversal(root.left)

pre_order_traversal(root.right)

def post_order_traversal(root):

if root:

post_order_traversal(root.left)

post_order_traversal(root.right)

print(root.value, end=" ")

def build_perfect_binary_tree():

root = None

nodes = [24, 91, 17, 44, 62, 21, 67, 33, 49]

for node in nodes:

root = insert_node(root, node)

return root

def main():

# a) Xây dựng cây nhị phân hoàn chỉnh và bổ sung các nút giả

root = build_perfect_binary_tree()

# b) In ra các nút theo các thứ tự trước, sau và giữa

print("Thứ tự trước (Pre-order):")

pre_order_traversal(root)

print("\nThứ tự sau (Post-order):")

post_order_traversal(root)

print("\nThứ tự giữa (In-order):")

in_order_traversal(root)

if __name__ == "__main__":

main()

Chọn file muốn tải về:
Đóng Chỉ thành viên VnDoc PRO/PROPLUS tải được nội dung này!
Đóng
79.000 / tháng
Đặc quyền các gói Thành viên
PRO
Phổ biến nhất
PRO+
Tải tài liệu Cao cấp 1 Lớp
30 lượt tải tài liệu
Xem nội dung bài viết
Trải nghiệm Không quảng cáo
Làm bài trắc nghiệm không giới hạn
Mua cả năm Tiết kiệm tới 48%

Có thể bạn quan tâm

Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
Sắp xếp theo
🖼️

Tin học 12 Cánh diều

Xem thêm
🖼️

Gợi ý cho bạn

Xem thêm