Bài giảng Cấu trúc dữ liệu và giải thuật - Bài 9: Cây nhị phân - Nguyễn Mạnh Hiển
Định nghĩa • Cây nhị phân là cây, trong đó mỗi nút có không quá 2 con Cây biểu thức • Cây biểu thức là một cây nhị phân, trong đó: − Nút trong lưu trữ toán tử − Nút lá lưu trữ toán hạng
Bạn đang xem nội dung tài liệu Bài giảng Cấu trúc dữ liệu và giải thuật - Bài 9: Cây nhị phân - Nguyễn Mạnh Hiển, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Cây nhị phân
(Binary Trees)
Nguyễn Mạnh Hiển
Khoa Công nghệ thông tin
hiennm@tlu.edu.vn
Định nghĩa
• Cây nhị phân là cây, trong đó mỗi nút có không
quá 2 con
Cài đặt
Cây biểu thức
• Cây biểu thức là một cây nhị phân, trong đó:
− Nút trong lưu trữ toán tử
− Nút lá lưu trữ toán hạng
Duyệt cây biểu thức theo thứ tự giữa
(inorder traversal)
• Trình tự: con trái, nút đang xét, con phải
• Đầu ra: biểu thức trung tố
Duyệt cây biểu thức theo thứ tự sau
(postorder traversal)
• Trình tự: con trái, con phải, nút đang xét
• Đầu ra: biểu thức hậu tố
Duyệt cây biểu thức theo thứ tự trước
(preorder traversal)
• Trình tự: nút đang xét, con trái, con phải
• Đầu ra: biểu thức tiền tố
Xây dựng cây 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 làm:
− Đọc từng ký tự từ trái sang phải
− Toán hạng tạo nút đặt con trỏ tới nút vào
ngăn xếp
− Toán tử lấy hai con trỏ từ ngăn xếp (trỏ tới hai
cây T1 và T2) tạo nút toán tử trỏ tới T1 và T2
đặt con trỏ tới nút toán tử vào ngăn xếp
Xây dựng cây: a b + c d e + * *
• Đọc a, b
Xây dựng cây: a b + c d e + * *
• Đọc +
Xây dựng cây: a b + c d e + * *
• Đọc c, d, e
Xây dựng cây: a b + c d e + * *
• Đọc +
Xây dựng cây: a b + c d e + * *
• Đọc *
Xây dựng cây: a b + c d e + * *
• Đọc *