Professional Documents
Culture Documents
Duyệt cây là một tiến trình để truy cập các nút của một cây.
Chúng ta lần lượt ghé thăm các đỉnh của cây có gốc theo một thứ tự nào đó.
Có 3 cách duyệt cây theo thứ tự
- Thứ tự trước (Preorder Traversal)
- Thứ tự giữa (Inorder Traversal)
- Thứ tự sau (Postorder Traversal)
Kết quả: A → B → D → E → C → F → G
Độ phức tạp: O(n)
#include <iostream>
using namespace std;
Kết quả: D → B → E → A → F → C → G
return;
// Đầu tiên duyệt trung thứ tự cây con bên trái
printInorder(node->left);
// Sau đó in giá trị của nút hiện tại
cout << node->data << " ";
// Sau đó duyệt trung thứ tự cây con bên phải
printInorder(node->right);
}
int main()
{
struct Node* root = newNode("A");
root->left = newNode("B");
root->right = newNode("C");
root->left->left = newNode("D");
root->left->right = newNode("E");
root->right->left = newNode("F");
root->right->right = newNode("G");
// Gọi hàm duyệt cây
printInorder(root);
return 0;
}
III. Thứ tự sau – Hậu thứ tự (Postorder Traversal)
Bước 1: Duyệt cây con bên trái gốc hậu thứ tự một cách đệ quy
Bước 2: Duyệt cây con bên phải gốc hậu thứ tự một cách đệ quy
Bước 3: Truy cập nút gốc
Kết quả: D → E → B → F → G → C → A