IIỊ4.1. Cây nhị phân biểu thức

Một phần của tài liệu MỘT số vấn đề về KIỂU dữ LIỆU TRỪU TƯỢNG (Trang 46)

Chương III: CÂY NHỊ PHÂN

IIỊ4.1. Cây nhị phân biểu thức

1. Mỗi nút lá chứa một toán hạng

2. Mỗi nút trong chứa một phép toán hai ngôi

3. Các cây con trái và phải của nút phép toán biểu diễn các biểu thức con (subexpressions) cần được thực hiện trước khi thực hiện phép toán ở gốc của các cây con. Ví dụ: Cây nhị phân 4 mức: * - 8 5 / + 3 4 2

Hình 18

Hình 18 mô tả cây nhị phân biểu thức (8-5)*((4+2)/3)

Dạng tiền tố (prefix) của biểu thức: là kí pháp của biểu thức khi duyệt

cây theo thứ tự trước.

Dạng trung tố (infix) của biểu thức: là kí pháp của biểu thức khi duyệt

cây theo thứ tự giữạ

Dạng hậu tố (postfix) của biểu thức: là kí pháp của biểu thức khi duyệt

cây theo thứ tự saụ

Nếu duyệt cây biểu thức trong hình 18 theo thứ tự sau thì ta sẽ được 8 5 – 4 2 + 3 / *

Trong những năm đầu 1950, nhà lô-gic học người Balan Jan Lukasiewicz đã chứng minh rằng biểu thức hậu tố không cần phải có dẫu ngoặc vẫn có thể tính được một cách đúng đắn bằng cách đọc lần lượt biểu thức từ trái qua

phải và dùng một Stack để lưu các kết quả trung gian:

Bước 1: Khởi tạo một Stack rỗng

Bước 2: Đọc lần lượt các phần tử của biểu thức LRN từ trái qua phải (phần tử này có thể là hằng, biến hay toán tử) với mỗi phần tử đó, ta kiểm tra:

• Nếu phần tử này là một toán hạng thì đẩy giá trị đó vào Stack.

• Nếu phần tử này là một toán tử ®, ta lấy từ Stack ra hai giá trị (y và x) sau đó áp dụng toán tử ® đó vào hai giá trị vừa lấy ra, đẩy kết quả tìm được (x ® y) vào Stack.

Bước 3: Sau khi kết thúc bước 2 thì toàn bộ biểu thức đã được đọc xong, trong Stack chỉ còn duy nhất một phần tử, phần tử đó chính là giá trị của biểu thức.

Chương trình minh họa cho cách tính giá trị của biểu thức bạn đọc có thể tham khảo tại trang 81 - Cấu trúc dữ liệu và giải thuật - tác giả Lê Minh Hoàng.

IIỊ4.2. Chuyển từ dạng trung tố sang dạng hậu tố (Xem [6], trang 83)

Một phần của tài liệu MỘT số vấn đề về KIỂU dữ LIỆU TRỪU TƯỢNG (Trang 46)

Tải bản đầy đủ (DOC)

(76 trang)
w