Dựa trên hàm BSTSort(A) đã biết, viết chương trình sắp xếp dãy số giảm dần theo kĩ thuật

Giải Chuyên đề Tin 12 Bài 9: Các thuật toán duyệt trên cây tìm kiếm nhị phân - Kết nối tri thức

Luyện tập 1 trang 45 Chuyên đề Tin học 12: Dựa trên hàm BSTSort(A) đã biết, viết chương trình sắp xếp dãy số giảm dần theo kĩ thuật sử dụng cây tìm kiếm nhị phân.

Quảng cáo

Lời giải:

Để sắp xếp dãy số theo thứ tự giảm dần bằng cách sử dụng cây tìm kiếm nhị phân (BST), chúng ta cần thực hiện duyệt ngược (reverse in-order traversal) trên cây. Điều này có nghĩa là chúng ta sẽ duyệt cây theo thứ tự: cây con phải, nút gốc, cây con trái.

Cài đặt hàm BSTSort để sắp xếp giảm dần

1. Định nghĩa cấu trúc nút cây BST

class TreeNode:

    def __init__(self, key):

        self.left = None

        self.right = None

        self.val = key

2. Hàm chèn một phần tử vào BST

def insert(root, key):

    if root is None:

        return TreeNode(key)

    else:

        if root.val < key:

            root.right = insert(root.right, key)

        else:

            root.left = insert(root.left, key)

    return root

3. Hàm duyệt ngược để lấy thứ tự giảm dần

def reverse_in_order_traversal(root, result):

    if root:

        reverse_in_order_traversal(root.right, result)

        result.append(root.val)

        reverse_in_order_traversal(root.left, result)

4. Hàm chính để sắp xếp dãy A theo thứ tự giảm dần

def BSTSortDescending(A):

    if not A:

        return []

    # Bước 1: Tạo cây tìm kiếm nhị phân từ dãy A

    root = None

    for key in A:

        root = insert(root, key)

    # Bước 2: Duyệt cây để lấy kết quả sắp xếp giảm dần

    sorted_result = []

    return sorted_result

Quảng cáo

Lời giải bài tập Chuyên đề Tin 12 Bài 9: Các thuật toán duyệt trên cây tìm kiếm nhị phân hay, ngắn gọn khác:

Quảng cáo
Quảng cáo

Xem thêm lời giải bài tập Chuyên đề học tập Tin học 12 Kết nối tri thức hay, ngắn gọn khác:

Xem thêm các tài liệu học tốt lớp 12 hay khác:

ĐỀ THI, GIÁO ÁN, GÓI THI ONLINE DÀNH CHO GIÁO VIÊN VÀ PHỤ HUYNH LỚP 12

Bộ giáo án, đề thi, bài giảng powerpoint, khóa học dành cho các thầy cô và học sinh lớp 12, đẩy đủ các bộ sách cánh diều, kết nối tri thức, chân trời sáng tạo tại https://tailieugiaovien.com.vn/ . Hỗ trợ zalo VietJack Official


Giải bài tập lớp 12 sách mới các môn học
Tài liệu giáo viên