Giải chuyên đề Tin 12 Cánh diều Bài 2: Thực hành duyệt cây nhị phân có đáp án
21 người thi tuần này 4.6 183 lượt thi 1 câu hỏi
🔥 Đề thi HOT:
15 câu Trắc nghiệm Tin học 12 Cánh diều Giới thiệu trí tuệ nhân tạo có đáp án
15 câu Trắc nghiệm Tin học 12 Cánh diều Mô hình và các giao thức mạng có đáp án
15 câu Trắc nghiệm Tin học 12 Chân trời sáng tạo Bài A1 có đáp án
15 câu Trắc nghiệm Tin học 12 Kết nối tri thức có đáp án
Trắc nghiệm Tin học 12 Bài 1 (có đáp án): Một số khái niệm cơ bản
15 câu Trắc nghiệm Tin học 12 Chân trời sáng tạo Bài B1 có đáp án
15 câu Trắc nghiệm Tin học 12 Chân trời sáng tạo Bài B4 có đáp án
Trắc nghiệm Tin học 12 Bài 12 (có đáp án): Các loại kiến trúc của hệ cơ sở dữ liệu
Nội dung liên quan:
Danh sách câu hỏi:
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()