Professional Documents
Culture Documents
Cây
LOGO
Nội dung
a) b) c) d)
Cây lệch trái: a
Cây lệch phải: b
Cây zic-zắc: c và d
Các loại cây nhị phân
Cây hoàn chỉnh Cây đầy đủ
TT_TRUOC(T)
{ /* Phép thăm ở đây được đặc trưng bởi việc in
giá trị thành phần DATA của nút */
if (T != NULL)
{
printf(T->DATA);
TT_TRUOC(T->P_L);
TT_TRUOC(T->P_R);
}
}
Theo thứ tự giữa - LNR
TT_GIUA(T)
{
if (T != NULL)
{
TT_GIUA(T->P_L);
printf(T->DATA);
TT_GIUA(T->P_R);
}
}
Theo thứ tự sau - LRN
TT_SAU(T)
{
if (T != NULL)
{
TT_SAU(T->P_L);
TT_SAU(T->P_R);
printf(T->DATA);
}
}
Hàm duyệt trước không đệ quy
TT_TRUOC_S(T) {/* T trỏ tới gốc cây, S-ngăn xếp (được cài đặt
bằng mảng) với biến trỏ TOP trỏ tới đỉnh. Con trỏ P được dùng để trỏ tới
nút hiện đang được xem xét. */
if (T == NULL)
{ P= POP(S, TOP);
printf(“Cây rỗng‟); while (P != NULL)
return; //xuống con trái
} {
else printf(P->DATA); // Thăm P
{ if (P->P_R!= NULL)
TOP = -1; PUSH(S, TOP,P->P_R); //
Lưu trữ địa chỉ gốc cây con phải
PUSH(S, TOP, T);
} P= P->P_L; // Xuống con trái