Danh mục

Bài giảng Cấu trúc dữ liệu và giải thuật (2016): Phần 2

Số trang: 101      Loại file: pdf      Dung lượng: 2.20 MB      Lượt xem: 11      Lượt tải: 0    
tailieu_vip

Xem trước 10 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Nối tiếp phần 1, phần 2 tiếp tục trình bày về các cấu trúc dữ liệu rời rạc (cây, đồ thị). Đối với với mỗi cấu trúc dữ liệu, tài liệu tập trung trình bày bốn nội dung cơ bản: Định nghĩa, biểu diễn, thao tác và ứng dụng của cấu trúc dữ liệu. Ứng với mỗi thuật toán, tài liệu trình bày bốn nội dung cơ bản: Biểu diễn, đánh giá, thử nghiệm và cài đặt thuật toán. Mời các bạn cùng tham khảo để nắm nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật (2016): Phần 2 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN 1 -----------------  ---------------- BÀI GIẢNG CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Biên soạn : TS. NGUYỄN DUY PHƯƠNG Hà Nội, tháng 12/2016 CHƯƠNG 4. NGĂN XẾP, HÀNG ĐỢI, DANH SÁCH LIÊN KẾT CHƯƠNG 5. CÂY NHỊ PHÂN (BINARY TREE) Như đã được đề cập ở trên, hạn chế lớn nhất của mảng là luôn đòi hỏi một không gian nhớ liên tục. Điều này sẽ gặp phải khó khăn khi xử lý các đối tượng dữ liệu lớn. Hàng đợi không đòi hỏi một không gian nhớ liên tục nhưng gặp phải vấn đề trong tìm kiếm. Trong chương này ta sẽ xem xét một cấu trúc dữ liệu rời rạc đó là cây nhị phân. Các node trên cây được tổ chức và truy cập không theo thứ tự. Cây nhị phân cho phép ta tổ chức và xử lý được các ứng dụng có dữ liệu rất lớn. Tìm kiếm trên cây nhị phân không nhanh như tìm kiếm trên mảng nhưng tốt hơn rất nhiều so với danh sách liên kết. Nội dung đề cập của chương bao gồm:  Định nghĩa và khái niệm.  Biểu diễn cây nhị phân.  Các thao tác trên cây nhị phân.  Ứng dụng của cây nhị phân.  Cây nhị phân tìm kiếm.  Cây nhị phân tìm kiếm cân bằng.  Cây nhiều nhánh. 5.1. Định nghĩa và khái niệm Đối với cấu trúc dữ liệu cây ta có hai phương pháp tiếp cận: tiếp cận bằng cây nhị phân và tiếp cận cây bằng lý thuyết đồ thị. Cây nhị phân được xem là cây đơn giản nhất trong cấu trúc cây. Tuy nhiên, một kết quả quan trọng trong khi nghiên cứu về cây nhị phân là mọi cây tổng quát đều có thể dịch chuyển về một cây nhị phân tương đương. Điều này có nghĩa mọi kết quả phát biểu trên cây nhị phân cũng đúng cho cây tổng quát. Dưới đây là một số khái niệm trên cây nhị phân. 4.1.1. Định nghĩa Tập hợp hữu hạn các node có cùng kiểu dữ liệu (có thể là tập ) được phân thành 3 tập: • Tập thứ nhất có thể là  hoặc chỉ có một node gọi là node gốc (root). • Hai tập con còn lại tự hình thành hai cây con bên trái (left subtree) và cây con bên phải (right subtree) của node gốc (hai tập con này cũng có thể là tập ). Một số khái niệm trên cây: • Node gốc (Root) là node đầu tiên định hình cây. • Node cha (Father): node A là node cha của node B nếu B hoặc là node con bên trái của node A (left son) hoặc B là node con bên phải của node B (right son). • Node lá (Leaf): node không có node con trái, không có node con phải. NGUYỄN DUY PHƯƠNG 126 CHƯƠNG 4. NGĂN XẾP, HÀNG ĐỢI, DANH SÁCH LIÊN KẾT • Node trung gian (Internal Node): node hoặc có node con trái, hoặc có node con phải, hoặc cả hai hoặc cả hai. • Node trước (Ancestor): node A gọi là node trước của node B nếu cây con node gốc là A chứa node B. • Node sau trái (left descendent): node B là node sau bên trái của node A nếu cây con bên trái của node A chứa node B. • Node sau phải (right descendent): node B là node sau bên phải của node A nếu cây con bên phải của node A chứa node B. • Node anh em (brother): A và B là anh em nếu cả A và B là node con trái và node con phải của cùng một node cha. • Bậc của node (degree of node): Số cây con tối đa của node. • Mức của node (level of node): mức node gốc có bậc là 1, mức của các node khác trên cây bằng mức của node cha cộng thêm 1. • Chiều sâu của cây (depth of tree): mức lớn nhất của node lá trong cây. Như vậy, độ sâu của cây bằng đúng độ dài đường đi dài nhất từ node gốc đến node lá. Hình 4.1. Cây nhị phân. 5.1.2. Một số tính chất của cây nhị phân Cây nhị phân có một số tính chất dưới đây:  Số lượng lớn nhất các node ở mức h là 2h-1. Ví dụ, số lượng mức của node gốc là 21-1 = 1, mức 2 là 22-1 = 2…  Số lượng node lớn nhất của cây nhị phân có chiểu cao h là 2h-1. Điều này có thể suy luận trực tiếp từ tính chất 1 vì N≤ 20 + 21 + …+2h-1 = 2h-1. NGUYỄN DUY PHƯƠNG 127 CHƯƠNG 4. NGĂN XẾP, HÀNG ĐỢI, DANH SÁCH LIÊN KẾT  Đối với cây nhị phân có N node thì chiều cao tối thiểu hay mức tối thiểu của cây là ⌈????????????2 (???? + 1)⌉.  Một cây nhị phân có L node lá có chiều cao tối đa là ⌈????????????2 (????)⌉ + 1.  Trong cây nhị phân số lượng các node lá luôn nhiều hơn các node có hai node con 1 đơn vị. 5.1.3. Các loại cây nhị phân Dưới đây là một số loại cây nhị phân đặc biệt: • Cây lệch trái: cây nhị phân chỉ có node con bên trái. • Cây lệch phải: cây chỉ có node con bên phải. • Cây nhị phân đúng (strickly binary tree): node gốc và tất cả các node trung gian đều có đúng hai node con (Hình 4.2). • Cây nhị phân đầy đủ(complete binary tree): cây nhị phân đúng và tất cả node lá đều có mức là d (Hình 4.3). • Cây nhị phân gần đầy (almost complete binary tree):Cây nhị phân gần đầy có chiều sâu d là cây nhị phân thỏa mãn (Hình 4.4): • Tất cả node con có mức không nhỏ hơn d-1 đều có hai node con (cây nhị phân đầy đủ mức d-1). • Các node ở mức d đầy từ trái qua phải. • Cây nhị phân hoàn toàn cân bằng.Cây nhị phân có số node thuộc nhánh cây con trái và số node thuộc nhánh cây con phải chênh lệch nhau không quá 1 (Hình 4.5). • Cây nhị phân tìm kiếm. Cây nhị phân thỏa mãn điều kiện (Hình 4.6): • Hoặc ...

Tài liệu được xem nhiều: