본문내용
;
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();
}
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
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();
}
소개글