Danh mục

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

Số trang: 36      Loại file: pdf      Dung lượng: 920.20 KB      Lượt xem: 1      Lượt tải: 0    
Thu Hiền

Phí tải xuống: 20,000 VND Tải xuống file đầy đủ (36 trang) 0
Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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.
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Cây - Phan Mạnh Hiển (2020)Cây(Trees)Nguyễn Mạnh Hiểnhiennm@tlu.edu.vnNội dung1. Cây2. Cây nhị phân1. CâyĐịnh nghĩa câyCâ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 rootVí dụ 1: Cấu trúc tổ chức của một công tyVí dụ 2: Cấu trúc hệ thống fileCá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 chaCá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)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 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âyCá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ự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; }Ví dụ Biểu diễn con đầu tiên/anh em kế tiếpDuyệ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ự sauDuyệt cây theo thứ tự trướcXuất phát từ nút gốc:1. Thăm nút đang xét2. Duyệt các nút con của nút đang xét từ trái sang phải theo kiểu đệ quyDuyệ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 8Duyệ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 8Duyệt cây theo thứ tự sauXuấ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 đệ quy2. Thăm nút đang xétDuyệ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 8Duyệ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

Tài liệu được xem nhiều:

Gợi ý tài liệu liên quan: