TAILIEUCHUNG - Bài giảng Phân tích và Thiết kế giải thuật nâng cao: Chương 3 - PGS.TS. Trần Cao Đệ

Bài giảng Phân tích và thiết kế thuật toán gồm 5 chương: Kỹ thuật phân tích giải thuật, kỹ thuật thiết kế giải thuật, cây cân bằng, giải thuật so khớp chuỗi, các giải thuật hình học, mật mã. Bài giảng sau đây sẽ giới thiệu môn học & kế hoạch hoàn thành môn học. . | Phần 2: Các giải thuật nâng cao Chương 3: Cây cân bằng Balanced trees PGS. TS. TRẦN CAO ĐỆ Đại Học Cần Thơ 2013 Cây tìm kiếm nhị phân binary search tree Cây tìm kiếm nhị phân (TKNP) là cây nhị phân mà khoá tại mỗi nút lớn hơn khoá của tất cả các nút thuộc cây con bên trái và nhỏ hơn khoá của tất cả các nút thuộc cây con bên phải. typedef KeyType; typedef struct Node{ KeyType Key; Node* Left; Node* Right; }; typedef Node* Tree; 20 10 17 5 15 35 22 42 37 thêm một khoá vào cây TKNP void InsertNode(KeyType x,Tree& Root ){ /* thêm nút mới chứa khoá x */ if (Root == NULL){ Root=(Node*)malloc(sizeof(Node)); Root->Key = x; Root->Left = NULL; Root->Right = NULL; } else if (x Key) InsertNode(x,Root->Left); else if (x>Root->Key)InsertNode(x,Root->Right); } 19 20 10 17 5 15 35 22 42 37 Xóa nút 35 Xóa nút 17 Xóa nút 20 Xóa một nút trên cây TKNP 20 10 17 5 22 35 25 42 24 20 10 35 NULL 10 17 5 15 Xóa một nút trên cây TKNP KeyType DeleteMin (Tree& Root ){ KeyType k; if (Root->Left == NULL){ k=Root->Key; Root = Root->Right; return k; } else return DeleteMin(Root->Left); } void DeleteNode(KeyType x,Tree& Root){ if (Root!=NULL) if (x Key) DeleteNode(x,Root->Left); else if (x > Root->Key) DeleteNode(x,Root->Right); else if ((Root->Left==NULL) && (Root->Right==NULL)) Root=NULL; else if (Root->Left == NULL) Root = Root->Right; else if (Root->Right==NULL) Root = Root->Left; else Root->Key = DeleteMin(Root->Right); } Phân tích BST Tìm kiếm một nút trên cây TKNP Mất O(1) duyệt trên mỗi nút Mỗi lần duyệt đi sâu xuống một mức Vậy thời gian tìm kiếm là O(h) với h là chiều cao của cây Thời gian tìm kiếm 1 nút, thêm một nút, xóa một nút trên cây TKNP là O(h), với h là chiều cao của cây TKNP Chiều cao của cây TKNP có n nút: Logn ≤ h ≤ n Cây AVL Trong trường hợp xấu nhất thời gian thực hiện các phép toán trên BST là O(n) Cân bằng AVL Do Adelson Velski và Landis AVL: Cây TKNP mà chiều cao của hai cây con của mọi nút chênh lệch nhiều .

TỪ KHÓA LIÊN QUAN
TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.