1. Trang chủ >
  2. Giáo án - Bài giảng >
  3. Cao đẳng - Đại học >

Đếm số node lá

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 Search Tree – Ví dụ

57



Chương 7: Cây (Tree)



Binary Search Tree – Ví dụ

58



Chương 7: Cây (Tree)



Binary Search Tree – Biểu diễn

59











Cấu trúc dữ liệu của CNPTK là cấu trúc dữ

liệu biểu diễn cây nhị phân nói chung

(???)

Thao tác duyệt cây trên CNPTK hoàn toàn

giống như trên cây nhị phân





Chú ý: khi duyệt theo thứ tự giữa, trình tự

các nút duyệt qua sẽ cho ta một dãy các nút

theo thứ tự tăng dần của khóa



Chương 7: Cây (Tree)



Binary Search Tree – Duyệt cây

60



Duyệt giữa trên CNPTK



25



10



37



3



18



1



6

5



12



29

20



13



50

35



41



32



Duyệt inorder: 1 3 5 6 10 12 13 18 20 25 29 32 35 37 41 50

Chương 7: Cây (Tree)



Binary Search Tree – Duyệt cây

61



Duyệt sau trên CNPTK



25



10



37



3



18



1



6

5



12



29

20



13



50

35



41



32



Duyệt postorder: 1 5 6 3 13 12 20 18 10 32 35 29 41 50 37 25



Chương 7: Cây (Tree)



Binary Search Tree – Duyệt cây

62



Duyệt trước trên CNPTK



25



10



37



3



18



1



6

5



12



29

20



13



50

35



41



32



Duyệt preorder: 25 10 3 1 6 5 18 12 13 20 37 29 35 32 50 41



Chương 7: Cây (Tree)



Binary Search Tree – Tìm kiếm

63



25



Tìm kiếm trên CNPTK

10



37



3



18



1



6

5



12



29

20



13



50

35



41



32

Node gốc nhỏ hơn

Giốngnhau

lớn

Khác nhau hơn



Tìm kiếm 13

Chương 7: Cây (Tree)



Tìm thấy



Số node duyệt: 5



Binary Search Tree – Tìm kiếm

64



25



Tìm kiếm trên CNPTK

10



37



3



18



1



6

5



12



29

20



13



50

35



41



32

Khác nhau

Node gốc nhỏ hơn

lớn hơn



Tìm kiếm 14

Chương 7: Cây (Tree)



Không tìm thấy



Số node duyệt: 5



Binary Search Tree – Tìm kiếm

65





Tìm một phần tử x trong CNPTK (dùng đệ quy):



TNode* searchNode(Tree T, DataType X)

{

if (T)

{

if(T->data ==X)

return T;

if(T->data >X)

return searchNode(T->pLeft, X);

return searchNode(T->pRight, X);

}

return NULL;

}

Chương 7: Cây (Tree)



Binary Search Tree – Tìm kiếm

66





Tìm một phần tử x trong CNPTK (dùng vòng lặp):



TNode* searchNode(Tree T, DataType x)

{

TNode *p = T;

while (p != NULL)

{

if(x == p->data)

return p;

else if(x < p->data) p = p->pLeft;

else p = p->pRight;

}

return NULL;

}



Chương 7: Cây (Tree)



Binary Search Tree – Tìm kiếm

67







Nhận xét:

 Số lần so sánh tối đa phải thực hiện để

tìm phần tử X là h, với h là chiều cao

của cây

 Như vậy thao tác tìm kiếm trên CNPTK có

n nút tốn chi phí trung bình khoảng

O(log2n)



Chương 7: Cây (Tree)



Xem Thêm
Tải bản đầy đủ (.ppt) (123 trang)

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×