THÔNG TIN TÀI LIỆU
Cây nhị phân (Trees and Binary Trees) Nguyễn Mạnh Hiển hiennm@tlu.edu.vn Nội dung Cây Cây nhị phân Cây Định nghĩa Cây tập nút: • Nếu tập nút rỗng, rỗng • Nếu tập nút khơng rỗng: − Có nút root gọi nút gốc − Có k T1, T2, …, Tk (k 0) cho nút gốc nối với nút root cạnh − root gọi nút cha, gốc T1, T2, …, Tk gọi nút root Ví dụ 1: Cấu trúc tổ chức cơng ty Ví dụ 2: Cấu trúc hệ thống file Các khái niệm (1) Xét có n nút: • Có nút gốc; • Có n – cạnh nút (trừ nút gốc) có cạnh liên kết với nút cha Các khái niệm (2) • Nút lá: Nút khơng có (B, C, H…) • Nút anh em: Các nút cha (K, L, M cha F) • Nút ơng (E) nút cháu (P, Q) Các khái niệm (3) • Đường từ nút n1 đến nút nk dãy nút n1, n2, …, nk ni cha ni+1 (1 i < k) • Chiều dài đường số cạnh đường − Đường từ nút tới có chiều dài 10 Các khái niệm (4) • Chiều sâu nút ni chiều dài đường từ nút gốc đến nút ni − Nút gốc có chiều sâu − Chiều sâu chiều sâu nút sâu • Chiều cao nút ni chiều dài đường dài từ nút ni đến nút − Nút có chiều cao − Chiều cao chiều cao nút gốc • Chiều cao = chiều sâu 26 Cây biểu thức Cây biểu thức nhị phân, đó: • Nút lưu trữ tốn tử; • Nút lưu trữ tốn hạng 27 Duyệt biểu thức theo thứ tự • Xuất phát từ nút gốc • Trình tự duyệt: duyệt trái theo thứ tự thăm nút xét duyệt phải theo thứ tự • Đầu ra: biểu thức trung tố 28 Duyệt biểu thức theo thứ tự sau • Xuất phát từ nút gốc • Trình tự duyệt: duyệt trái theo thứ tự sau duyệt phải theo thứ tự sau thăm nút xét • Đầu ra: biểu thức hậu tố 29 Duyệt biểu thức theo thứ tự trước • Xuất phát từ nút gốc • Trình tự: thăm nút xét duyệt trái theo thứ tự trước duyệt phải theo thứ tự trước • Đầu ra: biểu thức tiền tố 30 Xây dựng biểu thức • Xét trường hợp biểu thức hậu tố (Ví dụ: a b + c d e + * *) • Cách xây dựng (dùng ngăn xếp): − Đọc toán hạng/toán tử từ trái sang phải − Gặp toán hạng: (1) Tạo nút chứa toán hạng; (2) Đặt trỏ tới nút vào ngăn xếp − Gặp tốn tử: (1) Lấy hai trỏ, trỏ tới hai T1 T2, khỏi ngăn xếp; (2) Tạo nút chứa toán tử trỏ sang trái phải tới T1 T2; (3) Đặt trỏ tới nút toán tử vào ngăn xếp 31 Xây dựng cây: a b + c d e + * * • Đọc a, b 32 Xây dựng cây: a b + c d e + * * • Đọc + 33 Xây dựng cây: a b + c d e + * * • Đọc c, d, e 34 Xây dựng cây: a b + c d e + * * • Đọc + 35 Xây dựng cây: a b + c d e + * * • Đọc * 36 Xây dựng cây: a b + c d e + * * • Đọc * 37 Bài tập Chỉ nút gốc nút Tính chiều sâu chiều cao nút C, E H Tính chiều sâu chiều cao 38 Bài tập Xét nhị phân có n nút Chứng minh có n + liên kết rỗng (tức trỏ NULL) Xét nhị phân có chiều cao h Chứng minh số nút không vượt 2h+1 – Gợi ý: Dùng quy nạp toán học 39 Bài tập Viết biểu thức trung tố, tiền tố hậu tố tương ứng với biểu thức bên 40 Bài tập Viết hàm C++ có tham số trỏ tới gốc nhị phân T để: (a) đếm số nút T (b) đếm số nút T (c) đếm số nút có đủ T Gợi ý: Dùng đệ quy Viết hàm C++ duyệt nhị phân theo thứ tự trước, sau Gợi ý: Dùng đệ quy Nêu cách thực phép duyệt nhị phân theo thứ tự mức: thăm nút gốc trước tiên, đến thăm nút độ sâu 1, đến thăm nút độ sâu 2, v.v… Gợi ý: Dùng hàng đợi ... theo thứ tự sau root root (13) (14) (15) root 5 root (16) 23 Cây nhị phân 24 Định nghĩa nhị phân Cây nhị phân cây, nút có khơng q con, phân thành trái phải: • Con trái gốc trái nút xét • Con phải...2 Nội dung Cây Cây nhị phân Cây Định nghĩa Cây tập nút: • Nếu tập nút rỗng, rỗng • Nếu tập nút khơng rỗng: − Có nút root gọi... Đọc * 37 Bài tập Chỉ nút gốc nút Tính chiều sâu chiều cao nút C, E H Tính chiều sâu chiều cao 38 Bài tập Xét nhị phân có n nút Chứng minh có n + liên kết rỗng (tức trỏ NULL) Xét nhị phân có chiều
Ngày đăng: 26/12/2021, 17:20
Xem thêm: