Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.1 MB, 123 trang )
Binary Tree – Khởi tạo cây
31
Khởi tạo cây rỗng:
void InitTree (Tree &t)
{
t = NULL;
}
Chương 7: Cây (Tree)
Binary Tree - Duyệt cây nhị phân
32
Có 3 kiểu duyệt chính có thể áp dụng trên
cây nhị phân:
Duyệt theo thứ tự giữa - inorder (Left-NodeRight: LNR)
Duyệt theo thứ tự trước - preorder (NodeLeft-Right: NLR)
Duyệt theo thứ tự sau - postorder (LeftRight-Node: LRN)
Tên của 3 kiểu duyệt này được đặt dựa trên
trình tự của việc thăm nút gốc so với việc
thăm 2 cây con
Chương 7: Cây (Tree)
Binary Tree - Duyệt cây nhị phân
33
Duyệt theo thứ tự trước NLR (Node-Left-Right)
Kiểu duyệt này trước tiên thăm nút gốc sau
đó thăm các nút của cây con trái rồi đến
cây con phải
void
Thủ tục NLR (Tree thể trình bày đơn giản như
duyệt có t)
{
sau:
if (t != NULL)
{
// Xử lý t tương ứng theo nhu cầu
NLR(t->pLeft);
NLR(t->pRight);
}
}
Chương 7: Cây (Tree)
Binary Tree - Duyệt cây nhị phân NLR
34
A
B
C
D
E
H
I
N
J
F
G
K
O
L
M
P
Kết quả: A B D H I N E J O K C F L P G M
Chương 7: Cây (Tree)
Binary Tree - Duyệt cây nhị phân
35
Duyệt theo thứ tự giữa LNR (Left-Node-Right)
Kiểu duyệt này trước tiên thăm các nút của
cây con trái sau đó thăm nút gốc rồi đến
cây con phải
Thủ tục duyệt có thể trình bày đơn giản như
void LNR(Tree t)
sau:
{
if (t != NULL)
{
LNR(t->pLeft);
//Xử lý nút t theo nhu cầu
LNR(t->pRight);
}
}
Chương 7: Cây (Tree)
Binary Tree - Duyệt cây nhị phân LNR
36
A
B
C
D
E
H
I
N
J
F
G
K
O
L
M
P
Kết quả: H D N I B J O E K A F P L C M G
Chương 7: Cây (Tree)
Binary Tree - Duyệt cây nhị phân
37
Duyệt theo thứ tự giữa LRN (Left-Right-Node)
Kiểu duyệt này trước tiên thăm các nút của
cây con trái sau đó thăm đến cây con phải
rồi cuối cùng mới thăm nút gốc
Thủ tục LRN(Tree thể trình bày đơn giản như
duyệt có t)
void
sau:
{
if (t != NULL)
{
LRN(t->pLeft);
LRN(t->pRight);
// Xử lý tương ứng t theo nhu cầu
}
}
Chương 7: Cây (Tree)
Binary Tree - Duyệt cây nhị phân LRN
38
A
B
C
D
E
H
I
N
J
F
G
K
O
L
M
P
Kết quả: H N I D O J K E B P L F M G C A
Chương 7: Cây (Tree)