Thứ Tư, 27 Tháng Mười Một 2024
Trang chủLập trìnhLập trình C/C++Duyệt tiền tố, trung tố, hậu tố trong cây nhị phân -...

Duyệt tiền tố, trung tố, hậu tố trong cây nhị phân – Lập trình C/C++

Trong bài viết trước chúng ta đã cùng nhau tìm hiểu về Cấu trúc dữ liệu cây nhị phân trong lập trình C/C++. Tiếp tục với chủ đề cây nhị phân, trong bài viết này, chúng ta sẽ cùng tìm hiểu về các cách duyệt cây thường dùng là duyệt tiền tố, trung tố, hậu tố.

DANH SÁCH BÀI VIẾT
Tìm hiểu Cấu trúc dữ liệu Hash table trong lập trình C/C++
Cây đa phân trong lập trình C/C++ – Cấu trúc dữ liệu cây đa phân
Hiểu về cấu trúc dữ liệu cây trong lập trình C/C++
Chinh phục cấu trúc dữ liệu hàng đợi lập trình C/C++ trong 5 phút
Cấu trúc dữ liệu ngăn xếp trong lập trình C/C++
Cấu trúc dữ liệu Danh sách liên kết (Linked list) trong lập trình C/C++
Cấu trúc dữ liệu cây nhị phân trong lập trình C/C++
Cây nhị phân tìm kiếm – Tìm hiểu cây nhị phân tìm kiếm trong C/C++
Duyệt tiền tố, trung tố, hậu tố trong cây nhị phân – Lập trình C/C++

Duyệt tiền tố, trung tố, hậu tố trong cây nhị phân

Cây nhị phân là một kiểu dữ liệu phổ biến trong lập trình và được sử dụng để lưu trữ và quản lý dữ liệu theo cấu trúc cây. Một trong những thao tác quan trọng trên cây nhị phân đó là duyệt cây, bao gồm duyệt tiền tố(NLR), trung tố(LNR) và hậu tố(LRN). Trước khi đi vào chương trình minh họa cụ thể mình có ví dụ cây nhị phân như sau:

Minh họa cây nhị phân

Vậy mình sẽ thực hiện duyệt cây đối với cây đồ thị này.

Duyệt tiền tố (NLR)

Duyệt tiền tố là phương pháp duyệt cây bắt đầu bằng việc ghé thăm nút gốc, sau đó là nút con bên trái và sau đó là nút con bên phải. Quá trình duyệt tiếp tục lặp lại cho đến khi duyệt hết cây.

Các bước thực hiện duyệt trung tố cây nhị phân như sau:

  1. Duyệt nút hiện tại.
  2. Duyệt cây con trái theo thứ tự hậu tố.
  3. Duyệt cây con phải theo thứ tự hậu tố.

Kết quả duyệt tiền tố đối với cây đồ thị trên sẽ là: 1 2 4 5 3 7 6.

Cấu trúc hàm duyệt tiền tố:

// Hàm thực hiện duyệt cây NLR(hậu tố) sử dụng đệ quy.
void NLR(Node* root) {
    if (root == NULL) {
        return;
    }
    printf("%d ", root->data);
    NLR(root->left);
    NLR(root->right);
}

XEM THÊM: Khóa học lập trình Android từ cơ bản đến thành thạo – Giảm ngay 40%

Duyệt trung tố (LNR)

Duyệt trung tố là phương pháp duyệt cây bắt đầu bằng việc ghé thăm nút con bên trái, sau đó là nút gốc và cuối cùng là nút con bên phải. Quá trình duyệt tiếp tục lặp lại cho đến khi duyệt hết cây.

Các bước thực hiện duyệt trung tố cây nhị phân như sau:

  1. Duyệt cây con trái theo thứ tự hậu tố.
  2. Duyệt nút hiện tại.
  3. Duyệt cây con phải theo thứ tự hậu tố.

Kết quả duyệt trung tố của cây trên là: 4 2 5 1 7 3 6.

Cấu trúc hàm duyệt trung tố:

// Hàm thực hiện duyệt cây LNR(trung tố) sử dụng đệ quy.
void LNR(Node* root) {
    if (root == NULL) {
        return;
    }
    LNR(root->left);
    printf("%d ", root->data);
    LNR(root->right);
}

XEM THÊM: Khóa học lập trình C/C++ từ A-Z cho người mới – Giảm giá 40% hôm nay

Duyệt hậu tố (LRN)

Duyệt cây nhị phân theo thứ tự hậu tố nghĩa là ta trước hết duyệt tất cả các nút con bên trái của một nút, sau đó duyệt tất cả các nút con bên phải của nút đó, và cuối cùng là duyệt nút đó chính nó.

Các bước thực hiện duyệt hậu tố cây nhị phân như sau:

  1. Duyệt cây con trái theo thứ tự hậu tố.
  2. Duyệt cây con phải theo thứ tự hậu tố.
  3. Duyệt nút hiện tại.

Kết quả duyệt hậu tố của cây trên là: 4 5 2 7 6 3 1

Cấu trúc hàm duyệt trung tố:

// Hàm thực hiện duyệt cây LRN (hậu tố) sử dụng đệ quy.
void LRN(Node* root) {
    if (root == NULL) {
        return;
    }
    LRN(root->left);
    LRN(root->right);
    cout << root->data << " ";
}

Cảm ơn bạn đã đọc hết bài viết! Chúc bạn học tốt!

[XEM TẤT CẢ BÀI VIẾT CHỦ ĐỀ C/C++ TẠI ĐÂY]

XÊM THÊM
Cấu trúc dữ liệu cây nhị phân trong lập trình C/C++
Cách tìm UCLN và BCNN
Thuật toán đếm số lượng chữ số của số nguyên dương n
Thuật toán tính dãy số Fibonacci
Bài toán chuẩn hóa xâu ký tự
Kiểm tra số chẵn lẻ trong lập trình C/C++
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?

Dịch vụ code thuê

TUICOCACH.COM NHẬN ĐẶT TEXTLINK, BANNER, GP
0
Giáo sư! có thể ném gạch bên dưới nhé!x