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

pdf14 trang | Chia sẻ: candy98 | Lượt xem: 828 | Lượt tải: 0download
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 *