Bài giảng Cấu trúc dữ liệu và giải thuật: Cây nhị phân - Nguyễn Tri Tuấn
lượt xem 2
download
Bài giảng "Cấu trúc dữ liệu và giải thuật: Cây nhị phân" cung cấp cho các bạn các kiến thức: Các khái niệm và thuật ngữ cơ bản, cài đặt cấu trúc dữ liệu, duyệt cây, cây nhị phân tìm kiếm, hàng đợi ưu tiên. Mời các bạn cùng tham khảo nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cấu trúc dữ liệu và giải thuật: Cây nhị phân - Nguyễn Tri Tuấn
- Cây nhị phân Các khái niệm và thuật ngữ cơ bản Cài đặt cấu trúc dữ liệu Duyệt cây Cây nhị phân tìm kiếm – Binary Search Tree Hàng đợi ưu tiên – Priority Queue Winter 2017 51 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Các khái niệm và thuật ngữ cơ bản Các ví dụ Đặc điểm của cấu trúc cây Tree ADT Các thuật ngữ liên quan Các định lý Winter 2017 52 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Các ví dụ (1) Ví dụ 1: cách lưu trữ phân cấp bài toán đưa thư Cần tìm 1 người: Tèo, khoa CNTT, ĐH KHTN, Quận 5, Tp.HCM, Việt nam Cách tìm ra “Tèo” nhanh nhất ? Sử dụng mảng (array) ? Sử dụng danh sách liên kết (linked list) ? Winter 2017 53 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Các ví dụ (2) Trái đất (7 tỉ) China Korea ... ... Vietnam (88 triệu) Tp.HCM (12 triệu) ... ... Hà nội Quận 5 ... ... Quận 12 ĐH.KHTN (20,000 người) ... ... Khoa CNTT (5000 người) ... ... Khoa Toán “Tèo” Winter 2017 54 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Các ví dụ (3) Ví dụ 2: cây biểu thức (a-b)*(c/d) * - / c d a b Winter 2017 55 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Các ví dụ (4) Ví dụ 3: cây ngữ pháp – mô tả các thành phần ngữ pháp trong một câu Winter 2017 56 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Đặc điểm của cấu trúc cây Cây là 1 cấu trúc dữ liệu quan trọng để biểu diễn tính “kế thừa”, “phân cấp” Cây gia phả (trong các dòng họ) Cây phân cấp các loài (trong sinh vật) … Linked List Chèn/xóa phần tử: O(1) Tìm kiếm: O(n) Cây nhị phân tìm kiếm Thêm/xóa phần tử: O(log2n) Tìm kiếm: O(log2n) Winter 2017 57 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Tree ADT (1) Một cây (Tree) là: Một tập các phần tử, gọi là các node p1,p2,…,pN Nếu N=0, cây gọi là cây rỗng (NULL) Nếu N>0: • Tồn tại duy nhất 1 node pr gọi là gốc của cây • Các node còn lại được chia thành m tập hợp không giao nhau: T1, T2, …, Tm • Mỗi là 1 cây con của cây Tập rỗng Cây rỗng (NULL) Winter 2017 58 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Tree ADT (2) Node gốc Cây con a c d k Cây con j e g i h f b Cây Cây con Cây con Winter 2017 59 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Tree ADT (3) Cây a j c e g d Cây con i h k f b Cây con Cây con Cây con Winter 2017 60 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Tree ADT (4) Cây a j g k c Cây con i b h f e d Cây con Cây con Cây con Winter 2017 61 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Tree ADT (5) Các tính chất của cây: Node gốc không có node cha Mỗi node con chỉ có 1 node cha Mỗi node có thể có nhiều node con Không có chu trình Winter 2017 62 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Tree ADT (6) Các thao tác cơ bản trên cây: Khởi tạo cây rỗng Xóa cây Thêm một node Xóa một node Duyệt cây Kiểm tra cây rỗng Đếm số node trong cây Tính chiều cao của cây Winter 2017 63 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Các thuật ngữ liên quan (1) Node: là 1 phần tử trong cây. Mỗi node có thể chứa 1 dữ liệu bất kỳ Nhánh (Branch): là đoạn nối giữa 2 node Node cha (Parent node) Node con (Child node) Node anh em (sibling nodes): là những nút có cùng node cha Bậc của 1 node p: là số node con của p Bậc (a) = 4; Bậc (j) = 3; Bậc (g) = 2; Bậc (k) = 1; Bậc (c) = 0 Winter 2017 64 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Các thuật ngữ liên quan (2) Node gốc (Root node): node không có node cha Node lá (Leaf node): node có bậc = 0 (không có node con) Node nội (Internal node): là node có node cha và có node con Cây con (Subtree) Trắc nghiệm: có bao nhiêu cây con trong cây ? Winter 2017 65 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Các thuật ngữ liên quan (3) Bậc của cây: là bậc lớn nhất của các node trong cây Bậc () = max {bậc (pi) / pi } Bậc của cây ? Đường đi (Path) giữa node pi đến node pj: là dãy các node liên tiếp từ pi đến pj sao cho giữa hai node kề nhau đều có nhánh Path(a, d) ? Winter 2017 66 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Các thuật ngữ liên quan (4) Mức (Level): Mức (p) = 0 nếu p = root Mức (p) = 1 + Mức (Cha (p)) nếu p!=root Chiều cao của cây (Height - hT): đường đi dài nhất từ node gốc đến node lá hT = max {Path(root, pi) / pi là node lá } hT ? Winter 2017 67 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Các thuật ngữ liên quan (5) Winter 2017 68 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Các thuật ngữ liên quan (6) Cây nhị phân (binary tree) Cây nhị phân là cây có bậc = 2 Full binary tree Mỗi node có 0 hoặc 2 node con Complete binary tree Từ mức 0 đến mức h-2: có đủ số node (completely full) Mức h-1: các node được thêm vào cây từ trái sang phải Winter 2017 69 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Các thuật ngữ liên quan (7) Full but not complete Complete but not full ? Complete and full Winter 2017 70 (C) Nguyen Tri Tuan - Truong DH.KHTN DHQG-HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cấu trúc dữ liệu - Bài 1:Tổng quan về cấu trúc dữ liệu và giải thuật
47 p | 174 | 17
-
Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Lương Trần Hy Hiến
7 p | 162 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 8: Cấu trúc dữ liệu ngăn xếp
28 p | 77 | 9
-
Bài giảng Cấu trúc dữ liệu giải thuật: Các kiểu dữ liệu trừu tượng cơ bản - Cấu trúc dữ liệu tuyến tính
92 p | 116 | 9
-
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 đỏ đen - Bùi Tiến Lên
25 p | 79 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 17: Cấu trúc dữ liệu dạng cây
21 p | 77 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu
193 p | 57 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (2016)
62 p | 94 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (Trường Đại học Hồng Bàng )
62 p | 158 | 6
-
Bài giảng Cấu trúc dữ liệu - Chương 3: Cấu trúc cây
65 p | 58 | 6
-
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 AA - Bùi Tiến Lên
30 p | 35 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 – Trần Minh Thái (2017)
67 p | 106 | 4
-
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 - Bùi Tiến Lên
68 p | 40 | 4
-
Bài giảng Cấu trúc dữ liệu: Chương 1 - ThS. Thiều Quang Trung (2018)
44 p | 43 | 4
-
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 AVL - Bùi Tiến Lên
38 p | 47 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - Ngô Quang Thạch
24 p | 58 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Th.S Thiều Quang Trung
41 p | 68 | 3
-
Bài giảng Cấu trúc dữ liệu giải thuật: Cấu trúc dữ liệu
17 p | 50 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn