Bài giảng Cấu trúc dữ liệu và giải thuật 1: Chương 9

17 22 0
Bài giảng Cấu trúc dữ liệu và giải thuật 1: Chương 9

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Cấu trúc dữ liệu và giải thuật 1: Chương 9 trình bày các nội dung chính sau: Cây nhị phân tìm kiếm cân bằng, tổ chức dữ liệu, các trường hợp mất cân bằng do lệch trái, các thao tác trên cây cân bằng,... Mời các bạn cùng tham khảo để nắm nội dung chi tiết.

11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu NỘIMaster DUNGTitle Style Click To Edit CÂY NHỊ PHÂN TÌM KIẾM CÂN BẰNG Ðịnh nghĩa Click To Edit Master Title Style  Cây nhị phân tìm kiếm cân mà nút độ cao trái phải chênh lệch không 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu 44 23 Ví dụ: 88 13 59 37 15 30 40 55 108 71 Tổ Click chức To liệu Edit Master Title Style 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu Chỉ số cân = độ lệch trái phải nút Các giá trị hợp lệ :  CSCB(p) =  phải (p)  CSCB(p) =  phải (p)  CSCB(p) = -1 cao phải (p) Độ cao trái (p) = Độ cao Độ cao trái (p) < Độ cao  Độ cao trái (p) > Độ 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu Tổ Click chức To liệu(tt) Edit Master Title Style #define LH -1 //cây trái cao #define EH //cây trái phải #define RH //cây phải cao typedef struct tagAVLNode { char balFactor; //chỉ số cân Data key; struct tagAVLNode* pLeft; struct tagAVLNode* pRight; }AVLNode; typedef AVLNode *AVLTree; CácClick trường cân lệch trái Tohợp Edit Master Title Style Cây cân nút T T TH1: Left-Left 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu T1 L1 TH2: Left-Right R T T1 R R1 T2 L1 L21 R21 CácClick trường cân lệch phải Tohợp Edit Master Title Style Cây cân nút T TH3: Right-Right TH4: Right-Left T 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu T L L T1 L1 T1 T2 R1 L21 R1 R21 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu CácClick thaoTo tácEdit Master cânTitle bằngStyle  Khi thêm hay xoá nút cây, cĩ thể làm cho tính cân bằng, ta phải tiến hành cân lại  Cây có khả cân thay đổi chiều cao:  Lệch nhánh trái, thêm bên trái  Lệch nhánh phải, thêm bên phải  Lệch nhánh trái, hủy bên phải  Lệch nhánh phải, hủy bên trái  Cân lại : tìm cách bố trí lại cho chiều cao cân đối:  Kéo nhánh cao bù cho nhánh thấp 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu CânClick bằngTo lạiEdit trường hợp 1Title Style Master T T1 T1 L1 R L1 T R1 R1 R 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu CàiClick đặt cân lại cho trường hợp To Edit Master Title Style void LL(AVLTree &T) { AVLNode *T1=T->pLeft; T->pLeft = T1->pRight; T1->pRight=T; switch(T1-> balFactor) { case LH: T-> balFactor =EH; T1->balFactor=EH; break; case EH: T->balFactor=LH; T1->balFactor =RH; break; } T=T1; } CânClick bằngTo lạiEdit trường hợp 2Title Style Master T T2 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu T1 R T1 T2 L1 L1 L21 R21 10 T L21 R21 R 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu CàiClick đặt cân lại cho trường hợp To Edit Master Title Style void LR(AVLTree &T) { AVLNode *T1=T->pLeft; AVLNode *T2=T1->pRight; T->pLeft=T2->pRight; T2->pRight=T; T1->pRight= T2->pLeft; T2->pLeft = T1; switch(T2->balFactor) { case LH: T->balFactor=RH; T1->balFactor=EH; break; case EH: T->balFactor = EH; T1->balFactor=EH; break; case RH: T->balFactor =EH; T1->balFactor= LH; break; }T2->balFactor =EH; T=T2 } 11 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu CânClick bằngTo lạiEdit trường hợp 3Title Style Master T T1 L T1 T L1 L 12 R1 R1 L1 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu CàiClick đặt cân lại cho trường hợp To Edit Master Title Style void RR(AVLTree &T) { AVLNode *T1= T->pRight; T->pRight=T1->pLeft; T1->pLeft=T; switch(T1-> balFactor) { case RH: T-> balFactor = EH; T-> balFactor = EH; break; case EH: T-> balFactor = RH; T1-> balFactor = LH; break; } T=T1 } 13 CânClick bằngTo lạiEdit trường hợp 4Title Style Master T T2 L T1 T1 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu T T2 R1 L L21 R21 14 L21 R21 R1 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu CàiClick đặt cân lại cho trường hợp To Edit Master Title Style void RR(AVLTree &T) { AVLNode *T1= T->pRight; AVLNode *T2=T1->pLeft; T->pRight = T2->pLeft; T2->pLeft = T; T1->pLeft = T2->pRight; T2->pRight = T1; switch(T2-> balFactor) { case RH: T-> balFactor = LH; T1-> balFactor = EH; break; case EH: T-> balFactor = EH; T1-> balFactor = EH; break; case LH: T-> balFactor = EH; T1-> balFactor = RH; break; } T2-> balFactor =EH; T=T2;} 15 Thêm nút Click To Edit Master Title Style  Thêm bình thường trường hợp NPTK  Nếu tăng trưởng chiều cao 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu  Lần ngược gốc để phát nút bị cân  Tiến hành cân lại nút thao tác cân thích hợp  Việc cân lại cần thực lần nơi cân 16 HủyClick nútTo Edit Master Title Style Hủy bình thường trường hợp NPTK Nếu giảm chiều cao: 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu  Lần ngược gốc để phát nút bị cân  Tiến hành cân lại nút thao tác cân thích hợp  Tiếp tục lần ngược lên nút cha… Việc cân lại co thể lan truyền lên tận gốc 17 ... 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu T L L T1 L1 T1 T2 R1 L21 R1 R21 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU... 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu T T2 R1 L L21 R21 14 L21 R21 R1 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU... THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ dữLIỆU trúcDỮ Cấu T1 R T1 T2 L1 L1 L21 R21 10 T L21 R21 R 11 THUẬT GIẢI CẤU THUẬT GIẢI VÀ LIỆU DỮ TRÚC CẤUTRÚC giải thuật liệuVÀ

Ngày đăng: 23/09/2020, 14:21

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan