Cài đặt thuật toán biến đổi biểu thức từ trung tố sang hậu tố sử dụng cấu trúc dữ liệu stack dạng mảng - Pdf 22


 
!"#$%&%"'(
& 
&)*
+,-
../%"/0
I,Phát biểu bài toán
- Hàng ngày chúng ta thường xuyên làm việc và tiếp xúc với các biểu
thức, toán hạng, toán tử… và máy tính cũng vậy. Tuy nhiên máy tính
không thể nào hiểu được ngôn ngữ và cách viết của con người, vì vậy
để máy tính hiểu được các biểu thức thì chúng ta phải chuyển chúng về
một dạng mà máy tính có thể hiểu để thực hiện.
II, Một số định nghĩa
1. Biếu thức trung tố là gì?
- Biểu thức trung tố là biểu thức mà toán tử sẽ được đặt giữa hai toán
hạng, dĩ nhiên đây phải là toán tử hai ngôi. Hay đơn giản nó là các phép
tính mà ta bắt gặp hàng ngày trong học tập, đời sống.
Vd: a+b
1+2+4
2. Biểu thức hậu tố là gì?
- Biểu thức hậu tố là biểu thức mà toán tử đứng sau toán hạng, và tất
nhiên đây phải là toán tử hai ngôi. Nó còn được gọi là “ký pháp
nghịch đảo Ba Lan”.
Vd: ab+
12+4+
III, Tìm hiểu bài toán
- Chọn ngôn ngữ lập trình :ngôn ngữ C.
- Cài đặt trên mảng và danh sách liên kết đơn
- Input : Biểu thức trung tố
10+4-6/5*9

Phần cài đặt:
#include<stdio.h>
#define SIZE 50
#include <ctype.h>
char infx[50], pofx[50], ch, x;
char s[SIZE];
int top = -1;
push(char x) {
s[++top] = x;
}
char pop() {
return (s[top ]);
}
int doUuTien(char x) {
switch (x){
case '#':
return 0;
case '(':
return 1;
case '+':
case '-':
return 2;
case '*':
case '/':
return 3;
}
}
void convert(){
int i=0,k=0;
printf("\nMoi ban nhap bieu thuc trung to: ");

printf("Ban co muon nhap tiep?y/n?");
scanf("%c",&c);
}
}
Chương trình khi chạy
Ví dụ:
Input: 10-3*(14-2)/12
Kí Tự Stack Out put
10 10
- - 10
3 - 10 3
* - * 10 3
( - * ( 10 3
14 - * ( 10 3 14
- - * ( - 10 3 14
2 - * ( - 10 3 14 2
) - * 10 3 14 2 - *
/ - / 10 3 14 2 - *
12 - / 10 3 14 2 - * 12
“ “ 10 3 14 2 - * 12 / -
Out put: 10 3 14 2 * - * 12
class="bi x5 y9 w2 h3"


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status