Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (408.71 KB, 10 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
Giảng viên: TS. Ngo Huu Phuc
Tel: 0438 326 077
Mob: 098 5696 580
Email:
<b>11.1. Reverse Polish Notation (RPN) (6)</b>
<b>11.2. Chuyển đổi biểu dạng Infix sang RPN (7)</b>
<b>11.3. Ví dụ về chuyển đổi từ Infix sang RPN (9)</b>
<b>11.4. Prefix Notation (3)</b>
<b>Tham khảo:</b>
1. Data structures and Algorithms Stacks.htm
2. Kyle Loudon Mastering Algorithms, Chapter 6 Stacks and Queues
3. Elliz Horowitz – Fundamentals of Data Structures, Chapter 3 Stacks and
Queues
<b>Nội dung phần 11.1:</b>
Ký pháp nghịch đảo Balan, còn được gọi là Postfix, do
Charles Hamblin đề xuất vào những năm 1950s…
Ký pháp này lấy ý tưởng của Polish notation, được đề
xuất vào năm 1920 của nhà toán học người Balan có tên
Jan Łukasiewicz. (Trong một số tài liệu cịn gọi là ký pháp
Łukasiewicz).
RPN cho phép giảm thời gian trong việc tính một biểu
thức. Người dùng khơng cần quan tâm đến dấu
ngoặc trong biểu thức.
Với ký pháp này cho phép thấy kết quả ngay sau
phép toán.
Với việc cho thấy kết quả ngay, do đó, người sử dụng
có thể kiểm tra kết quả dễ hơn, nhanh hơn.
Với cách viết này, việc tính tốn dựa trên thứ tự của
biểu thức, kết hợp với thứ tự ưu tiên của phép tốn.
RPN có tính logic cao vì người dùng đưa biểu thức,
Xem xét một biểu thức đại số dạng Infix sau:
1 + 2 * 3 = ?
Kết quả là 7 hay 9?
Trả lời: kết quả là 7 vì phép * có độ ưu tiên cao hơn phép +.
Xem xét ví dụ: (1+2) * 3?
Kết quả là 9.
Xem xét ký pháp RPN sau: 4 5 + 6 *
Kết quả của biểu thức là bao nhiêu?
4 5 + → 4 + 5 = 9
9 6 * → 9 * 6 = 54
Biểu thức 4 5 + 6 * tương tự như biểu thức dạng
Infix (4+5)*6.
Các bước thực hiện:
Xem xét biểu thức dạng Postfix: 6 4 5 + *
Kết quả của biểu thức bằng?
4 5 + → 4 + 5 = 9
6 9 * → 6 * 9 = 54
Biểu thức 6 4 5 + * tương đương với biểu thức
dạng Infix: 6 * (4 + 5).
Các bước thực hiện:
<b>11.2.1</b>. Ví dụ về chuyển đổi biểu thức dạng Infix sang
RPN.
<b>11.2.2</b>. Thuật toán chuyển đổi biểu thức dạng Infix
sang RPN.