Bài giảng Cấu trúc dữ liệu và giải thuật: Cây nhị phân - TS. Trần Ngọc Việt
lượt xem 6
download
Bài giảng Cấu trúc dữ liệu và giải thuật: Cây nhị phân được biên soạn gồm các nội dung chính sau: tổng quan về cây nhị phân; thao tác trên cây; các loại cây; cây nhị phân; duyệt cây nhị phân. Mời các bạn cùng tham khảo!
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 - TS. Trần Ngọc Việt
- KHÁI NIỆM CƠ BẢN Cây là một cấu trúc phân tầng của các phần tử gọi là nút (node) • Mỗi node chứa một phần tử đơn. • Mỗi phần tử có thể có 1 hoặc nhiều nhánh kết nối với các nút khác, được gọi là nút con. Mọi cây có 1 nút gốc – root duy nhất. • Mọi nút trừ nút gốc đều là con của một nút khác – nút cha. 3 3 KHOA CÔNG NGHỆ THÔNG TIN
- CẤU TRÚC CÂY TRONG THỰC TẾ Thông thường các mô hình tổ chức sẽ có cấu trúc cây: • Một cây tổ chức là một cây không có thứ tự có cấu trúc phân tầng, như tổ chức của phòng ban trong thương mại. University Engineering Medicine Science Education Law Arts Chemistry Physics Maths Languages History 4 4 KHOA CÔNG NGHỆ THÔNG TIN
- CẤU TRÚC CÂY TRONG THỰC TẾ Sơ đồ phân loại sinh học cũng là một loại cây phổ biến. Cây này cũng không có thứ tự nhưng có tổ chức phân lớp. animals worms insects arachnids vertebrates stars sponges ants beetles flies fish reptites birds mammals snakes lizards crocodiles 5 KHOA CÔNG NGHỆ THÔNG TIN
- CẤU TRÚC CÂY TRONG THỰC TẾ Tổ chức file và các thư mục Chúng tả có thể mô hình hóa tổ chức các file bằng cách dùng cây không sắp xếp theo mô hình nút lá, và các thư mục như các nút cha. root doc bin lib etc tmp users cp grep sort mail motd passwd 6 KHOA CÔNG NGHỆ THÔNG TIN
- Thao tác trên cấu trúc cây Nó phải có thể truy cập vào nút gốc của cây truy cập tất cả các tổ tiên của một nút trong cây truy cập tất cả con cháu của một nút trong cây thêm một nút mới vào cây, xóa một nút nhất định khỏi cây Duyệt cây. 7 KHOA CÔNG NGHỆ THÔNG TIN
- Một số định nghĩa 8 KHOA CÔNG NGHỆ THÔNG TIN
- Một số định nghĩa Cây có thể được sắp xếp hoặc không được sắp xếp. Cây không có thứ tự, cây là cây ở hình dạng. Theo nghĩa cấu trúc, nó trông giống như một cái cây. Đối với bất kỳ nút nhất định nào, không có thứ tự nào được áp đặt cho các nút con của nút đó 9 KHOA CÔNG NGHỆ THÔNG TIN
- Một số định nghĩa Một cây có thứ tự áp đặt thứ tự trên các nút Có nhiều chiến lược sắp xếp thứ tự, nhưng theo nghĩa đơn giản nhất, thứ tự có thể được áp đặt bằng cách gán các số khác nhau cho các nút con của nút Lưu ý rằng thứ tự và duyệt cây không giống nhau 10 KHOA CÔNG NGHỆ THÔNG TIN
- Một số định nghĩa Cây có thể cân bằng hoặc không cân bằng Cây cân bằng tốt là cây không có nút nào xa gốc hơn bất kỳ nút nào khác Các giải thuật cân bằng khác nhau cho phép các định nghĩa khác nhau về "xa hơn nhiều" và đi kèm với các chi phí khác nhau để giữ cho cây cân bằng 11 KHOA CÔNG NGHỆ THÔNG TIN
- BT – Mô tả dữ liệu Cấu trúc cây đơn giản nhất, mỗi nút có tối đa 2 nút con Tại mỗi nút gồm các 3 thành phần • Phần data: chứa giá trị, thông tin… • Liên kết đến nút con trái (nếu có) • Liên kết đến nút con phải (nếu có) Cây nhị phân có thể rỗng (ko có nút nào) Cây NP khác rỗng có 1 nút gốc • Có duy nhất 1 đường đi từ gốc đến 1 nút • Nút không có nút con bên trái và con bên phải là nút lá 12 12 12 KHOA CÔNG NGHỆ THÔNG TIN
- BT – Mô tả dữ liệu Kích thước = 9 (số nút) Mức 0 A Cây con trái Cây con phải Mức 1 B C Mức 2 D E F G Mức 3 H I Độ sâu/chiều cao = 3 13 13 KHOA CÔNG NGHỆ THÔNG TIN
- 14 1. Khởi tạo cây 6. Xóa trái 2. Kiểm tra rỗng 7. Xóa phải 3. Tạo nút 8. Duyệt cây 4. Thêm trái 9. Tìm kiếm 5. Thêm phải 10. Xóa cây 14 KHOA CÔNG NGHỆ THÔNG TIN
- BT- Duyệt cây Duyệt cây: • Do cây là cấu trúc không tuyến tính • 3 cách duyệt cây NP Duyệt theo thứ tự trước PreOrder: NLR Duyệt theo thứ tự giữa InOrder: LNR Duyệt theo thứ tự sau PostOrder: LRN 15 15 15 KHOA CÔNG NGHỆ THÔNG TIN
- 7.3.3. BT- Duyệt cây Ví dụ: A B C D E G H I K L PreOrder : A, B, D, I, E, K, C, G, H, L InOrder : D, I, B, K, E, A, G, C, L, H PostOrder : I, D, K, E, B, G, L, H, C, A 16 16 16 KHOA CÔNG NGHỆ THÔNG TIN
- Hiện thực cây nhị phân Các thao tác mở rộng khác: • Đếm số nút lá: CountLeaf • Đếm số nút trên cây: CountNode • Xác định độ sâu/chiều cao của cây • Tìm giá trị nhỏ nhất/lớn nhất trên cây • Tính tổng các giá trị trên cây • Đếm số nút có giá trị bằng x 17 17 17 KHOA CÔNG NGHỆ THÔNG TIN
- CÂU HỎI Cho trước 1 mảng a có n phần tử (mảng số nguyên/ hoặc mảng cấu trúc có một trường là khóa), hãy tạo một cây nhị phân có n node, mỗi nút lưu 1 phần tử của mảng. 1. Cài đặt hàm duyệt cây theo thứ tự: LNR, NLR, LRN, mức. 2. Tìm node có giá trị là X. 3. Xác định chiều cao của cây 4. Đếm số node trên cây. 5. Đếm số node lá 18 18 18 KHOA CÔNG NGHỆ THÔNG TIN
- BST – Khái niệm BST là cây nhị phân mà mỗi nút thoả • Giá trị của tất cả nút con trái < giá trị của nút đó • Giá trị của tất cả nút con phải > giá trị của nút đó 5 5 3 10 1 4 8 20 19 19 19 KHOA CÔNG NGHỆ THÔNG TIN
- BST – Cài đặt Thao tác tìm kiếm x=9 10 95, right 58, right 5 30 9=9, Tìm thấy 8
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cấu trúc dữ liệu cơ bản và giải thuật - Chương 1
9 p | 258 | 29
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 6 - ThS. Trịnh Quốc Sơn (ĐH Công nghệ Thông tin)
14 p | 97 | 11
-
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: Chương 3 - ThS. Trịnh Quốc Sơn (ĐH Công nghệ Thông tin)
13 p | 70 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 1: Các khái niệm cơ bản về Cấu trúc dữ liệu và giải thuật
20 p | 47 | 8
-
Bài giảng Cấu trúc dữ liệu: Chương Giới thiệu - Nguyễn Xuân Vinh
8 p | 112 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Ngăn xếp và hàng đợi - TS. Trần Ngọc Việt
17 p | 31 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Chương 1: Tổng quan về giải thuật và cấu trúc dữ liệu
10 p | 69 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 9: Cấu trúc dữ liệu hàng đợi
12 p | 56 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Bài 4 - Hoàng Thị Điệp (2014)
11 p | 62 | 4
-
Bài giảng Cấu trúc dữ liệu và thuật toán: Chương 0 - Giới thiệu tổng quan môn học
7 p | 13 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Giới thiệu môn học - Phan Mạnh Hiển (2020)
5 p | 53 | 3
-
Bài giảng Cấu trúc dữ liệu & giải thuật: Các khái niệm cơ bản
14 p | 36 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 7 - Ngô Quang Thạch
17 p | 35 | 2
-
Bài giảng Cấu trúc dữ liệu giải thuật: Cấu trúc dữ liệu
17 p | 52 | 2
-
Bài giảng Cấu trúc dữ liệu 1: Giới thiệu - Huỳnh Cao Thế Cường
10 p | 51 | 2
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Giới thiệu môn học - Đỗ Ngọc Như Loan
6 p | 52 | 1
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Bài 1a - Hoàng Thị Điệp (2014)
12 p | 58 | 1
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