Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
745,5 KB
Nội dung
CÂY NHỊ PHÂN TMT 1 CÁC KHÁI NI MỆ 1. C u trúc cây nh phânấ ị 2. Các lo i cây nh phânạ ị a/ Cây nh phân đúngị (Strictly Binary Tree): T t c các nút đ u có đúng hai con ấ ả ề (ngo i tr nút lá). ạ ừ 2 B A C X F H I D E G Y B A C X F H I D E G Y CÁC KHÁI NI MỆ b/ Cây nh phân đ yị ầ (Complete Binary Tree): là cây nh phân đúng và t t c các ị ấ ả nút lá cùng m c. ở ứ 3 B A C F G N O D E J K L M H I B A C F G N O D E J K L M H I Đ C ĐI M CÂ Y NH PHÂN TÌM KI MẶ Ể Ị Ế Là cây nh phânị Giá tr c a m t node ị ủ ộ b t k luôn ấ ỳ l n h n ớ ơ giá tr c a t t c các ị ủ ấ ả node bên trái và nh ỏ h n giá tr t t c các ơ ị ấ ả node bên ph iả Nút có giá tr nh ị ỏ nh t n m trái nh t ấ ằ ở ấ c a cây ủ Nút có giá tr l n ị ớ nh t n m ph i ấ ằ ở ả nh t c a câyấ ủ 7 7 7 7 3 3 36 36 1 1 6 6 15 15 40 40 23 23 4 4 4 Cây nh phân cân b ngị ằ (AVL): M t cây ộ nh phân đ c g i là cây nh phân cân b ng ị ượ ọ ị ằ n u và ch n u đ i v i ế ỉ ế ố ớ m i nút c a cây thì ọ ủ chi u caoề c a cây con bên trái và chi u ủ ề cao c a cây con bê n ph i h n kém nhau ủ ả ơ nhi u nh t là 1ề ấ (Theo Adelson - Velski và Landis). 5 B A C E F I J D G H B A C E F I J D G H Cây nh phân cân b ng hoàn toànị ằ : M t ộ cây nh phân đ c g i là cây nh phân cân ị ượ ọ ị b ng hoàn toàn ằ n u và ch n u đ i v i ế ỉ ế ố ớ m i nút c a cây thì ọ ủ s nútố c a cây con ủ bên trái và s nút c a cây con bên ph i ố ủ ả h n kém nhau nhi u nh t là 1ơ ề ấ 6 B A C E F I E D H H B A C E F I E D H H Nút Đ NH NGHĨA KI U D LI UỊ Ể Ữ Ệ typedef struct Node { <Data> Key; struct Node *Left, *Right; } *Tree; Giá trị Trỏ trái Trỏ phải TNODE Key pLeft pRight 7 KHAI BÁO CÂY NH Ị typedef struct Node { int Key; struct Node *Left, *Right; } *Tree; 8 XÂY D NG CÂY Ự Ví dụ: có dãy s 20, 70, 30, 25, 35, 50, 80, 40, ố 60, 10 (3 tr ng h p g c là 50, g c là, 10 hay g c là ườ ợ ố ố ố 80) 9 Ví dụ: có dãy s 20, 70, 30, 25, 35, 50, 80, 40, ố 60, 10 10 [...]...Ví dụ: có dãy số 20, 70, 30, 25, 35, 50, 80, 40, 60, 10 11 DUYỆT CÂY Thứ tự trước (NLR) Thứ tự giữa (LNR) Thứ tự sau (LRN) …… 12 NLR 7 7 3 3 36 36 1 1 6 6 4 4 15 15 40 40 23 23 7 L7 R7 7 3 L3 R3 36 L36 7 3 1 6 L6 36 15 R15 40 7 3 1 6 4 36 15 23 40 R36 13 NLR Tại node t đang xét, nếu khác rỗng thì In giá trị của t Duyệt cây con bên trái của t theo thứ tự NLR... 15 1 3 4 6 7 15 23 36 40 LNR void LNR (TREE t) Tại node t đang xét, nếu { khác rỗng thì if(t!=NULL) Duyệt cây con bên trái { của t theo thứ tự LNR LNR(t->pLeft); In giá trị của t coutpRight); Duyệt cây con bên phải cout . CÂY NHỊ PHÂN TMT 1 CÁC KHÁI NI MỆ 1. C u trúc cây nh phân ị 2. Các lo i cây nh phân ị a/ Cây nh phân đúngị (Strictly Binary Tree): T t c các nút. a cây ủ Nút có giá tr l n ị ớ nh t n m ph i ấ ằ ở ả nh t c a cây ủ 7 7 7 7 3 3 36 36 1 1 6 6 15 15 40 40 23 23 4 4 4 Cây nh phân cân b ngị ằ (AVL): M t cây ộ nh phân đ c g i là cây nh phân. J D G H Cây nh phân cân b ng hoàn toànị ằ : M t ộ cây nh phân đ c g i là cây nh phân cân ị ượ ọ ị b ng hoàn toàn ằ n u và ch n u đ i v i ế ỉ ế ố ớ m i nút c a cây thì ọ ủ s nútố c a cây con ủ bên