1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 8 - ThS. Trịnh Quốc Sơn (ĐH Công nghệ Thông tin8

17 10 0

Đ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

Nội dung

Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 8: Cây nhị phân tìm kiếm cân bằng cung cấp cho người học các kiến thức: Định nghĩa, 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 trường hợp mất cân bằng do lệch phải, cân bằng lại,... Mời các bạn cùng tham khảo nội dung chi tiết.

CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải Click To Edit NỘIMaster DUNGTitle Style 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 CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải 44 23 Ví dụ: 88 13 15 30 40 108 59 37 55 71 Tổ Click chức To liệu Edit Master Title Style CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải Chỉ số cân = độ lệch trái phải nút Các giá trị hợp lệ :  CSCB(p) = cao phải (p)  CSCB(p) = cao phải (p)  CSCB(p) = -1 cao phải (p)  Độ cao trái (p) = Độ  Độ cao trái (p) < Độ  Độ cao trái (p) > Độ CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải 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 CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải 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 CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải T L L T1 L1 T1 T2 R1 L21 R1 R21 CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải 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  Phải bảo đảm Nhị phân tìm kiếm CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải CânClick bằngTo lạiEdit trường hợp 1Title Style Master T T1 T1 L1 R L1 T R1 R1 R CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải 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 CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải T1 R T1 T2 L1 L1 L21 R21 10 T L21 R21 R CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải 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 CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải CânClick bằngTo lạiEdit trường hợp 3Title Style Master T T1 L T1 T L1 L 12 R1 R1 L1 CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải 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 CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải T T2 R1 L L21 R21 14 L21 R21 R1 CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải 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 CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải  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: CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải  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 ... T1 CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải T T2 R1 L L21 R21 14 L21 R21 R1 CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU... CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải T1 R T1 T2 L1 L1 L21 R21 10 T L21 R21 R CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ... Right-Right TH4: Right-Left T CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI THUẬT Cấu trúcDỮ dữLIỆU liệuVÀ thuật giải T L L T1 L1 T1 T2 R1 L21 R1 R21 CẤU GIẢI THUẬT 11 CẤUTRÚC TRÚC DỮ LIỆU VÀ GIẢI

Ngày đăng: 20/05/2021, 04:34

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN