Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 10: Cây (Tree)
lượt xem 5
download
Bài giảng "Cấu trúc dữ liệu và giải thuật trong C++ - Bài 10: Cây (Tree)" cung cấp cho người cấp cho người học các kiến thức: Cấu trúc dữ liệu phi tuyến, cây biểu diễn các tổ chức, cây biểu diễn hệ thống files, cấu trúc của một cuốn sách,.... 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 trong C++ - Bài 10: Cây (Tree)
- Bài 10. Cây - Tree 1
- Cây – Cấu trúc dữ liệu phi tuyến (Trees - Non-linear data structures) ĐHGTVT CNTT KTVT CT 2
- Một số ví dụ sử dụng cấu trúc dữ liệu cây Data structures trees 3
- Cây gia phả Data structures trees 4
- Cây biểu diễn các tổ chức ĐHGTVT CNTT Đ-ĐT CK KT … Mạng CNPM KHMT VT ĐKH TTBĐ KTVT Data structures trees 5
- Cây biểu diễn hệ thống files Cây mô tả sự phân chia hệ thống files Data structures trees 6
- Cấu trúc của cuốn sách Cây thể hiện cấu trúc thông tin Data structures trees 7
- Cây quyết định Bạn đã có gia đình riêng chưa? rồi chưa Không chấp nhận Bạn có bằng đại học không? có Không Bạn có tốt nghiệp loại giỏi không? Không chấp nhận có không Chấp nhận Không chấp nhận Cây quyết định tuyển nhân viên Data structures trees 8
- Cây nhị phân biểu diễn các biểu thức toán học Một cây nhị phân biểu diễn một biểu thức. Cây này biểu diễn biểu thức ((((3+1)*3/((9-5)+2))-((3*(7-4))+6)). Giá trị được kết hợp lại tại nút trong có nhãn “/” là 2. Data structures trees 9
- Cây cú pháp S XY X XA | a | b Y AY | a Aa Data structures trees 10
- Tổng kết: Cây là cách tổ chức dữ liệu rất hữu dụng trong rất nhiều ứng dụng khác nhau ĐHGTVT CNTT KTVT CT Data structures trees 11
- Cây tổng quát Cây là gì? Cây là một tập các nút với quan hệ cha-con (parent-child) giữa các nút. Trong đó có một nút được gọi là gốc và nó không có cha. Trong khoa học máy tính, một cây là một mô hình trừu tượng của cấu trúc phân cấp. Các ứng dụng: Tổ chức biểu đồ Hệ thống file Các môi trường lập trình … Data structures trees 12
- Một số khái niệm Gốc (root): là nút không có Cây con: Cây bao nút cha ( vd: A) gồm một số nút của Nút trong: Nút có ít nhất một cây ban đầu một nút con (Vd: A, B, C, F) Nút ngoài (lá): nút không A có nút con (Vd: E, I, J, K, G, H, D) Độ sâu của một nút: B C D Nút gốc có độ sâu là 0, nếu nút cha có độ sâu là h thì nút con có độ sâu là h+1 E F G H Chiều cao của cây: là giá trị lớn nhất của độ sâu của Cây con tất cả các nút (3) I J K Data structures trees 13
- Cấu trúc dữ liệu trừu tượng cây Chúng ta quản lý các nút Các phương thức truy vấn: thông qua địa chỉ của int isInternal(Node*) chúng. int isExternal(Node*) Các phương thức chung: int isRoot(Node*) int size() Thêm vào đó là những phương thức int isEmpty() cập nhật được định nghĩa trong các Các phương duyệt cây: cấu trúc dữ liệu tạo Tree ADT (Node void preorder(Node*) tạo cây) void inorder(Node*) Phương thức thêm phần tử vào cây. void postorder(Node*) void insert(Node* parent, Các phương thức truy Element e) cập: Địa chỉ root() ◊ Phương thức xóa phần tử void remove(Node*); Data structures trees 14
- Duyêt theo thứ tự trước – preorder traversal Algorithm preOrder(v) Duyệt cây là cách đi thăm if(v!=null) các nút của cây theo một visit(v) hệ thống Duyệt theo thứ tự trước, for mỗi nút con w của v tức là: nút cha được thăm preorder (w) trước sau đó thăm các nút con, cháu, … 1 ĐHGTVT 2 10 6 CNTT CK QLGĐ 5 7 8 9 3 4 KHMT KHMT CNPM ĐMTX CKOT NHIET Data structures trees 15
- Ví dụ: Duyêt theo thứ tự trước Thăm cây theo thứ tự trước (preorder). Trong đó cây con được thăm theo thứ tự từ trái qua phải Data structures trees 16
- Bài tập: Hãy chỉ ra thứ tự thăm các nút của cây dưới đây bằng cách sử dụng phương pháp duyệt theo thứ tự trước? Data structures trees 17
- Thứ tự thăm các nút bằng phương pháp duyệt theo thứ tự trước Data structures trees 18
- Duyệt theo thứ tự giữa - inorder Traversal Algorithm inOrder(v) if(v!=null) Duyệt theo thứ tự giữa tức là: nút w = con cả của v con cả bên trái được thăm trước inOrder(w) sau đó thăm nút cha và cuối cùng visit(v) thăm nút con bên phải… for mỗi nút con w1#w của v Ứng dụng: Biểu diễn các biểu thức inOrder (w1) toán học 4 cs16/ 9 2 6 todo.txt homeworks/ programs/ 1K 1 3 5 7 8 h1c.doc h1nc.doc DDR.java Stocks.java Robot.java 3K 2K 10K 25K 20K Data structures trees 19
- Duyệt theo thứ tự sau - PostOrder Traversal Duyệt theo thứ tự sau, tức là: Algorithm postOrder(v) nút con được thăm trước sau đó thăm nút cha if(v!=null) Ứng dụng: Tính toán không for mỗi nút con w của v gian sử dụng bởi các files và các thư mục con postOrder (w) visit(v) 9 cs16/ 8 3 7 todo.txt homeworks/ programs/ 1K 1 2 4 5 6 h1c.doc h1nc.doc DDR.java Stocks.java Robot.java 3K 2K 10K 25K 20K Data structures trees 20
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: Chương 5 - Nguyễn Xuân Vinh
20 p | 88 | 9
-
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 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: Array List & Linked List - TS. Trần Ngọc Việt
71 p | 23 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 6 - Trường ĐH Văn Lang
39 p | 22 | 6
-
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: 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à 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 | 70 | 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 | 57 | 4
-
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 | 37 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - TS. Nguyễn Thị Kim Thoa
43 p | 5 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 8 - Đỗ Bích Diệp
13 p | 57 | 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 | 53 | 2
-
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 | 59 | 1
-
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
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