Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây cung cấp cho người đọc các kiến thức: Ứng dụng của kiểu dữ liệu cây, kiểu dữ liệu cây, các thuật ngữ liên quan đến cây, phân loại cây,... Mời các bạn cùng tham khảo.
CuuDuongThanCong.com CẤU TRÚC DỮ LIỆU CÂY Bùi Tiến Lên 01/01/2017 https://fb.com/tailieudientucntt CuuDuongThanCong.com GIỚI THIỆU CÂY https://fb.com/tailieudientucntt Ứng dụng kiểu liệu Kiểu liệu thể tính “phân cấp”, “kế thừa” Do biểu diễn cấu trúc Cây gia phả (trong dòng họ) Cây phân cấp lồi (trong sinh học) Cây thư mục (trong máy tính) CuuDuongThanCong.com Spring 2017 https://fb.com/tailieudientucntt Data structure & Algorithm Ứng dụng kiểu liệu (cont.) Hệ thống quản lý hành phân cấp toàn giới Trái đất Việt Nam TPHCM Quận Tân Bình Ơng Lên CuuDuongThanCong.com Spring 2017 Mỹ Trung Quốc Hà Nội Quận Ơng Dũng Hình 1: Quản lý hành tồn cầu https://fb.com/tailieudientucntt Data structure & Algorithm Ứng dụng kiểu liệu (cont.) Biểu thức tốn học biểu diễn Ví dụ dùng để biểu diễn biểu thức CuuDuongThanCong.com Spring 2017 (a + b) ∗ (c − d) * - + a b c d Hình 2: Cây biểu thức https://fb.com/tailieudientucntt Data structure & Algorithm Ứng dụng kiểu liệu (cont.) Các nhà ngôn ngữ học thường dùng ngữ pháp để biểu diễn cấu trúc ngữ pháp câu Ví dụ sau dùng để biểu diễn câu ”the cat sat on the mat” CuuDuongThanCong.com Spring 2017 S VP NP Det N V the cat sat PP NP P on Det N the mat Hình 3: Cây ngữ pháp https://fb.com/tailieudientucntt Data structure & Algorithm Kiểu liệu Định nghĩa Cây (tree) cấu trúc phi tuyến Được định nghĩa đệ qui sau Cây T rỗng CuuDuongThanCong.com Spring 2017 T =∅ gồm nút gốc r tập có thứ tự {T1 , T2 , , Tm } T = {r → {T1, , T2 , , Tm }} https://fb.com/tailieudientucntt Data structure & Algorithm Kiểu liệu (cont.) CuuDuongThanCong.com Spring 2017 r T1 T2 Tm Hình 4: Cây tin học https://fb.com/tailieudientucntt Data structure & Algorithm Các thuật ngữ liên quan đến Nút (node): phần tử CuuDuongThanCong.com Spring 2017 A E G F H I C D J Hình 5: Cây có nút {A, B, C, D, E, F, G, H, J} https://fb.com/tailieudientucntt Data structure & Algorithm Các thuật ngữ liên quan đến (cont.) Nhánh (branch): cạnh mũi tên nối hai nút Nút cha (parent node) nút (child node) hai quan hệ định nghĩa cạnh, nút cha nút đầu cạnh nút nút cuối cạnh CuuDuongThanCong.com Spring 2017 A E G F H I C D J Hình 6: Nút E nút cha H, nút H nút E https://fb.com/tailieudientucntt Data structure & Algorithm 10 Minh họa thêm nút (cont.) CuuDuongThanCong.com Spring 2017 Hình 26: Thêm https://fb.com/tailieudientucntt Data structure & Algorithm 50 Minh họa thêm nút (cont.) CuuDuongThanCong.com Spring 2017 Hình 27: Thêm https://fb.com/tailieudientucntt Data structure & Algorithm 51 Minh họa thêm nút (cont.) CuuDuongThanCong.com Spring 2017 Hình 28: Thêm https://fb.com/tailieudientucntt Data structure & Algorithm 52 Minh họa thêm nút (cont.) CuuDuongThanCong.com Spring 2017 Hình 29: Thêm https://fb.com/tailieudientucntt Data structure & Algorithm 53 Minh họa thêm nút (cont.) CuuDuongThanCong.com Spring 2017 Hình 30: Thêm https://fb.com/tailieudientucntt Data structure & Algorithm 54 Xóa nút khỏi nhị phân tìm kiếm Các trường hợp Có hai trường hợp xóa nút nhị phân tìm kiếm Xóa nút lá: đơn giản Xóa nút khơng phải lá: tìm phần tử thay Phần tử lớn bên trái Hoặc, phần tử nhỏ bên phải CuuDuongThanCong.com Spring 2017 https://fb.com/tailieudientucntt Data structure & Algorithm 55 Minh họa xóa nút 15 15 CuuDuongThanCong.com Spring 2017 18 17 13 19 18 17 19 13 9 (a) trước xóa (b) sau xóa Hình 31: Xóa nút khỏi https://fb.com/tailieudientucntt Data structure & Algorithm 56 Minh họa xóa nút khơng phải CuuDuongThanCong.com Spring 2017 15 18 17 19 13 Hình 32: Hãy xóa nút 15 https://fb.com/tailieudientucntt Data structure & Algorithm 57 Minh họa xóa nút (cont.) CuuDuongThanCong.com Spring 2017 18 17 19 13 Hình 33: Xóa nút 15 https://fb.com/tailieudientucntt Data structure & Algorithm 58 Minh họa xóa nút khơng phải (cont.) CuuDuongThanCong.com Spring 2017 13 18 17 19 Hình 34: Nút 13 chỗ 15 https://fb.com/tailieudientucntt Data structure & Algorithm 59 Minh họa xóa nút (cont.) CuuDuongThanCong.com Spring 2017 13 18 17 19 Hình 35: Phần tử chỗ 13 https://fb.com/tailieudientucntt Data structure & Algorithm 60 Minh họa xóa nút khơng phải (cont.) CuuDuongThanCong.com Spring 2017 13 18 17 19 Hình 36: Xóa nút https://fb.com/tailieudientucntt Data structure & Algorithm 61 Bài luyện tập Ví dụ Hãy xây dựng tìm kiếm từ dãy {4,3,5,1,2,8,9,7,16,11,12,15} Xóa nút 8, 16 Thêm nút 6, 17 CuuDuongThanCong.com Spring 2017 https://fb.com/tailieudientucntt Data structure & Algorithm 62 Đánh giá nhị phân tìm kiếm Phân tích chi phí thực theo h (chiều cao cây) tìm phần tử thêm phần tử xóa phần tử xấu ? ? ? trung bình ? ? ? tốt ? ? ? Phân tích chi phí nhớ theo n (số lượng nút cây) CuuDuongThanCong.com Spring 2017 https://fb.com/tailieudientucntt Data structure & Algorithm 63 Tài liệu tham khảo CuuDuongThanCong.com Spring 2017 https://fb.com/tailieudientucntt Data structure & Algorithm 64 ... phân Chỉ số Nút A B C D E F G H I Con trái -1 -1 -1 -1 -1 https://fb.com/tailieudientucntt Data structure & Algorithm Con phải -1 -1 -1 -1 -1 23 Cấu trúc liệu biểu diễn (cont.) Mỗi nút chứa thông... THIỆU CÂY https://fb.com/tailieudientucntt Ứng dụng kiểu liệu Kiểu liệu thể tính “phân cấp”, “kế thừa” Do biểu diễn cấu trúc Cây gia phả (trong dòng họ) Cây phân cấp loài (trong sinh học) Cây thư... Algorithm 16 Phân loại Định nghĩa Cây tuyến tính (linear tree): có bậc Cây nhị phân (binary tree): có bậc Cây tam phân (ternary tree): có bậc Cây n-nhánh (n-ary tree): có bậc n CuuDuongThanCong.com