본문내용
return item;
}
}
element peek( )
{
element item;
if(top == NULL) {
printf("\n\n Stack is empty !\n");
return 0;
}
else {
item = top->data;
return item;
}
}
void del( )
{
stackNode* temp;
if(top == NULL) {
printf("\n\n Stack is empty !\n");
}
else {
temp = top;
top = top->link;
free(temp);
}
}
void printStack( )
{
stackNode* p=top;
printf("\n STACK [ ");
while(p){
printf("%d ",p->data);
p = p->link;
}
printf("] ");
}
element evalPostfix(char *exp)
{
int opr1, opr2, value, i=0;
int length = strlen(exp);
char symbol;
top = NULL;
for(i=0; i
symbol = exp[i];
if(symbol != '+' && symbol != '-' && symbol != '*' && symbol != '/'){
value = symbol - '0';
push(value);
}
else{
opr2 = pop( );
opr1 = pop( );
switch(symbol){
case '+' : push(opr1 + opr2); break;
case '-' : push(opr1 - opr2); break;
case '*' : push(opr1 * opr2); break;
case '/' : push(opr1 / opr2); break;
}
}
}
return pop( );
}
void main(void)
{
char in[50];
int result;
char *temp;
printf("\n중위표기법 입력 : ");
scanf("%s",in);
temp = infix_to_postfix(in);
printf("\n%s의 후위표기법 : %s\n",in, temp);
result = evalPostfix(temp);
printf("\n연산결과 => %d\n\n", result);
getchar();
}
}
}
element peek( )
{
element item;
if(top == NULL) {
printf("\n\n Stack is empty !\n");
return 0;
}
else {
item = top->data;
return item;
}
}
void del( )
{
stackNode* temp;
if(top == NULL) {
printf("\n\n Stack is empty !\n");
}
else {
temp = top;
top = top->link;
free(temp);
}
}
void printStack( )
{
stackNode* p=top;
printf("\n STACK [ ");
while(p){
printf("%d ",p->data);
p = p->link;
}
printf("] ");
}
element evalPostfix(char *exp)
{
int opr1, opr2, value, i=0;
int length = strlen(exp);
char symbol;
top = NULL;
for(i=0; i
if(symbol != '+' && symbol != '-' && symbol != '*' && symbol != '/'){
value = symbol - '0';
push(value);
}
else{
opr2 = pop( );
opr1 = pop( );
switch(symbol){
case '+' : push(opr1 + opr2); break;
case '-' : push(opr1 - opr2); break;
case '*' : push(opr1 * opr2); break;
case '/' : push(opr1 / opr2); break;
}
}
}
return pop( );
}
void main(void)
{
char in[50];
int result;
char *temp;
printf("\n중위표기법 입력 : ");
scanf("%s",in);
temp = infix_to_postfix(in);
printf("\n%s의 후위표기법 : %s\n",in, temp);
result = evalPostfix(temp);
printf("\n연산결과 => %d\n\n", result);
getchar();
}
소개글