You are on page 1of 9

Bài tập 5.

1
a)
Bước 1: Khởi tạo một ngăn xếp rỗng để lưu trữ các toán hạng và toán tử.
Stack:[]
P:
Bước 2: Duyệt biểu thức Q từ trái sang phải. Đưa các toán hạng và toán tử vào stack theo thứ tự sau:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, A]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, A, +]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, A, +, B]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, A, +, B, -]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, A, +, B, -, C]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, A, +, B, -, C, )]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, ), *, D]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, ), *, D, /]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, ), *, D, /, E]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, ), *, D, /, E, -, (]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, ), *, D, /, E, -, (, F]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, ), *, D, /, E, -, (, F, -]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, ), *, D, /, E, -, (, F, -, G]
P:
Q: ( A+B-C)*D/E-(F-G)
Stack: [(, ), *, D, /, E, -, (, F, -, G, )]
P:
Vậy biểu thức Q được chuyển đổi sang dạng hậu tố P là:
P: A B + C - D * E / F G - -
b)
Bước 1: Khởi tạo một ngăn xếp rỗng để lưu trữ các toán hạng và toán tử.
Stack:[]
P:
Bước 2: Duyệt biểu thức Q từ trái sang phải. Đưa các toán hạng và toán tử vào stack theo thứ tự sau:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, d]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, d↑] P: Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, d↑, e]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, d↑, e, -]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, d↑, e, -, f]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, ), *, (]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, ), *, (, g]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, ), *, (, g, /]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, ), *, (, g, /, h]
P:
Q:(d↑e-f)*(g/h+i) – a/b + c
Stack:[(d↑e f – g,/,h ,+ ]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, d↑, e, -, f, ), *, (, g, /, h, +, i]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, d↑, e, -, f, ), *, (, g, /, h, +, i, )]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, d↑, e, -, f, ), *, (, g, /, h, +, i, ), -, (]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, d↑, e, -, f, ), *, (, g, /, h, +, i, ), -, (,a]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, d↑, e, -, f, ), *, (, g, /, h, +, i, ), -, (,a,/]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, d↑, e, -, f, ), *, (, g, /, h, +, i, ), -, (,a,/,b]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, d↑, e, -, f, ), *, (, g, /, h, +, i, ), -, (,a,/,b,+]
P:
Q: (d↑e - f)* (g/h + i) - a/b + c
Stack: [(, d↑, e, -, f, ), *, (, g, /, h, +, i, ), -, (, a, /, b,+ , c,)]
P:
Vậy biểu thức dưới dạng hậu tố P là: d e ↑ f - g h / i + * a / b - c +
c)
Tính giá trị của biểu thức hậu tố P tương ứng với Q ở phần trên theo các giá trị của biến: d = 6, c = 2, f =
9, g = 12, h = 4, i = 1, a = 27, b = 3, c = 11
P: de↑f-gh/i+*ab/-c+
Stack: []
P: de↑f-gh/i+*ab/-c+
Stack: [6]
P: de↑f-gh/i+*ab/-c+
Stack: [6, 5]
P: de↑f-gh/i+*ab/-c+
Stack: [1]
P: de↑f-gh/i+*ab/-c+
Stack: [1, 4]
P: de↑f-gh/i+*ab/-c+
Stack: [1, 4, '/', 12]
P: de↑f-gh/i+*ab/-c+
Stack: [1, 4, '/', 12, '+', '*']
P: de↑f-gh/i+*ab/-c+
Stack: [1, 4, '/', 12, '+', '*', 9]
P: de↑f-gh/i+*ab/-c+
Stack: [1, 4, '/', 12, '+', '*', 9, '-']
P: de↑f-gh/i+*ab/-c+
Stack: [27]
P: de↑f-gh/i+*ab/-c+
Stack: [27, 3]
P: de↑f-gh/i+*ab/-c+
Stack: [27, 3, '/']
P: de↑f-gh/i+*ab/-c+
Stack: [27, 3, '/', 11]
P: de↑f-gh/i+*ab/-c+
Stack: [27, 3, '/', 11, '-']
P: de↑f-gh/i+*ab/-c+
Stack: [16]
Vậy giá trị của biểu thức hậu tố P tương ứng với Q khi d = 6, c = 2, f = 9, g = 12, h = 4, i = 1, a = 27, b =
3, c = 11 là 16.
Bài tập 5.2:
a)
| |A|B|C|E| |
P=2 R=5
b)
| | | |C|E| |
P=4 R=5
c)
|J|K| |C|E| |
R=2 F=4
d)
|J|K| | | |I|
R=2 F=6
e)
|J|K|O| | |I|
R=3 F=6
f)
| |K|O| | | |
F=2 R=3
g)
| |K|O|W| | |
F=2 R=4
h)
| | |O|W| | |
F=3 R=4

You might also like