intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Cấu trúc dữ liệu và giải thuật: Cây - Phan Mạnh Hiển (2020)

Chia sẻ: Minh Nhân | Ngày: | Loại File: PDF | Số trang:36

14
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Cấu trúc dữ liệu và giải thuật: Cây" cung cấp cho người học các kiến thức: Cây dữ liệu, cây nhị phân. Đây là một tài liệu hữu ích dành cho các bạn sinh viên ngành Công nghệ thông tin và những ai quan tâm dùng làm tài liệu học tập và nghiên cứu.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cấu trúc dữ liệu và giải thuật: Cây - Phan Mạnh Hiển (2020)

  1. Cây (Trees) Nguyễn Mạnh Hiển hiennm@tlu.edu.vn
  2. Nội dung 1. Cây 2. Cây nhị phân
  3. 1. Cây
  4. Định nghĩa cây Cây là một tập nút: • Nếu tập nút rỗng, đó là cây rỗng • Nếu tập nút không rỗng: − Có một nút root được gọi là nút gốc − Có k cây con T1, T2, …, Tk (k  0) sao cho nút gốc của mỗi cây con đó được nối với nút gốc root bằng một cạnh trực tiếp − root được gọi là nút cha, còn gốc của các cây con T1, T2, …, Tk được gọi là các nút con của root
  5. Ví dụ 1: Cấu trúc tổ chức của một công ty
  6. Ví dụ 2: Cấu trúc hệ thống file
  7. Các khái niệm về cây (1) • Xét một cây có N nút: − Có một nút gốc − Có N – 1 cạnh vì mỗi nút (trừ nút gốc) có một cạnh liên kết nó với nút cha
  8. Các khái niệm về cây (2) • Nút lá: nút không có con (B, C, H) • Nút anh em: các nút cùng cha (K, L, M) • Nút ông (E) và nút cháu (P, Q)
  9. Các khái niệm về cây (3) • Đường đi từ nút n1 đến nút nk là dãy nút n1, n2, …, nk trong đó ni là cha của ni+1 (1  i < k) • Chiều dài đường đi là số cạnh trên đường đi đó − Đường đi từ một nút tới chính nó có chiều dài bằng 0
  10. Các khái niệm về cây (4) • Chiều sâu của nút ni là chiều dài đường đi từ nút gốc đến nút ni − Nút gốc có chiều sâu 0 − Chiều sâu của cây bằng chiều sâu của nút lá sâu nhất • Chiều cao của nút ni là chiều dài của đường đi dài nhất từ nút ni đến một nút lá − Nút lá có chiều cao 0 − Chiều cao của cây bằng chiều cao của nút gốc • Chiều cao của cây = chiều sâu của cây
  11. Các khái niệm về cây (5) • Nếu có đường đi từ nút n1 đến nút n2: − Nút n1 được gọi là tổ tiên của nút n2, và nút n2 được gọi là hậu duệ của nút n1 − Nếu n1  n2 thì ta có các khái niệm tổ tiên thực sự và hậu duệ thực sự
  12. Cài đặt cây • Mỗi nút chứa: − phần tử − con trỏ tới nút con đầu tiên − con trỏ tới nút anh em kế tiếp struct TreeNode { T elem; TreeNode * firstChild; TreeNode * nextSibling; }
  13. Ví dụ Biểu diễn con đầu tiên/anh em kế tiếp
  14. Duyệt cây • Là cách thức đi qua tất cả các nút của cây sao cho mỗi nút chỉ được thăm (xử lý) đúng một lần • Có 2 cách duyệt chính: − Duyệt theo thứ tự trước − Duyệt theo thứ tự sau
  15. Duyệt cây theo thứ tự trước Xuất phát từ nút gốc: 1. Thăm nút đang xét 2. Duyệt các nút con của nút đang xét từ trái sang phải theo kiểu đệ quy
  16. Duyệt cây theo thứ tự trước root 1 root 1 (1) 2 3 4 2 3 4 (2) 5 6 7 8 5 6 7 8 root 1 root 1 2 3 4 2 3 4 (3) (4) 5 6 7 8 5 6 7 8
  17. Duyệt cây theo thứ tự trước root 1 root 1 (5) (6) 2 3 4 2 3 4 5 6 7 8 5 6 7 8 root 1 root 1 (7) 2 3 4 2 3 4 (8) 5 6 7 8 5 6 7 8
  18. Duyệt cây theo thứ tự sau Xuất phát từ nút gốc: 1. Duyệt các nút con của nút đang xét từ trái sang phải theo kiểu đệ quy 2. Thăm nút đang xét
  19. Duyệt cây theo thứ tự sau root 1 root 1 (1) (2) 2 3 4 2 3 4 5 6 7 8 5 6 7 8 root 1 root 1 2 3 4 2 3 4 (3) (4) 5 6 7 8 5 6 7 8
  20. Duyệt cây theo thứ tự sau root 1 root 1 (5) (6) 2 3 4 2 3 4 5 6 7 8 5 6 7 8 root 1 root 1 (7) 2 3 4 2 3 4 (8) 5 6 7 8 5 6 7 8
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2