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