Ai biết xem giúp mình bài lập trình c này với...

[FONT=&quot]Chuyển biểu thức trung tố sang hậu tố sử dụng ngăn xếp lưu trữ bằng DSLK đơn.

Mọi người giúp mình với nha. Mình thanks trước!!!![/FONT]
 

tengiday

Happy life
Cái này có thuật toán là dùng stack để lưu operator đó bạn. Ví dụ: 2 + 3 * 7
Mã:
Cursor    Stack     Postfix
2                      2
+          +          2
3           +         2 3
*          + *       2 3
7          + *      2 3 7
Cuối cùng là pop hết những gì trong stack ra, kết quả là
2 3 7 * +

Tóm tắt có thể như sau:
- Gặp số là in ra.
- Nếu stack trống hoặc là có dấu ( ở đầu stack thì push operator tiếp theo vào stack.
- Nếu gặp dấu ( thì push vào stack.
- Nếu gặp dấu ) thì pop stack tới khi gặp dấu ( thì ngưng.
- Nếu gặp dấu có ưu tiên cao hơn đầu stack thì đưa nó vào stack.
- Nếu gặp dấu có ưu tiên bằng đầu stack thì pop stack và đưa dấu mới vào.
- Nếu gặp dấu có ưu tiên thấp hơn đầu stack thì pop stack rồi so sánh đầu stack mới với dấu hiện tại.
- Cuối cùng, stack còn bao nhiêu thì pop nó ra hết.

Mình nghĩ bạn nên làm bằng tay trước nhiều trường hợp cho hiểu rồi hay code nhé.
 

tengiday

Happy life
Bài này code ở trên mạng có nhiều lắm. Bạn search thử infix to postfix c++ sẽ ra rất nhiều. Mình khuyến khích bạn nên tự code thì kỹ thuật lập trình mới lên được. Hồi đó mình mới học lập trình; mỗi ngày ngồi viết rồi debug lỗi không ít hơn 8 tiếng đâu bạn.
 
ukm. Mình cug muốn vậy nhưng bài này thầy cho làm lấy điểm nên cug muốn làm cho đk điểm cao
 

Thống kê

Chủ đề
100,746
Bài viết
467,573
Thành viên
339,849
Thành viên mới nhất
chicstore.accessories
Top