#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
struct node {
int data;
struct node *next;
};
struct node *top = NULL;
void push(int data);
int pop();
int evaluatePostfix
(char* exp);
void main() {
char postfixExp[256];
printf("What is your Postfix Expression? : \n");
fgets(postfixExp
, sizeof(postfixExp
), stdin
); // printf("size of exp is %ld",strlen(postfixExp));
printf("%d\n", evaluatePostfix
(postfixExp
)); }
//done
void push(int data) {
// data=atoi(data);
struct node *newNode;
newNode
= (struct node
*)malloc(sizeof(struct node
));; (*newNode).data = data;
(*newNode).next = NULL;
//use isEmpty if can
if (top != NULL) {
(*newNode).next = top;
}
top = newNode;
}
//done
int pop() {
struct node *temp = top;
int removed;
//use isEmpty if can
if (top != NULL) {
removed = (*top).data;
top = (*top).next;
}
return removed;
}
int evaluatePostfix
(char* exp) { struct node *top = NULL;
} else {
int val1 = pop();
int val2 = pop();
case '+':
push(val2+val1);
break;
case '-':
push(val2-val1);
break;
case '*':
push(val2*val1);
break;
case '/':
push(val2/val1);
break;
}
}
}
return pop();
}
ICNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxjdHlwZS5oPgojaW5jbHVkZSA8c3RkbGliLmg+CgpzdHJ1Y3Qgbm9kZSB7CmludCBkYXRhOwpzdHJ1Y3Qgbm9kZSAqbmV4dDsKfTsKIHN0cnVjdCBub2RlICp0b3AgPSBOVUxMOwoKCnZvaWQgcHVzaChpbnQgZGF0YSk7CmludCBwb3AoKTsKaW50IGV2YWx1YXRlUG9zdGZpeChjaGFyKiBleHApOwoKdm9pZCBtYWluKCkgewogICAgIGNoYXIgcG9zdGZpeEV4cFsyNTZdOwoKICAgICBwcmludGYoIldoYXQgaXMgeW91ciBQb3N0Zml4IEV4cHJlc3Npb24/IDogXG4iKTsKCiAgICAgZmdldHMocG9zdGZpeEV4cCwgc2l6ZW9mKHBvc3RmaXhFeHApLCBzdGRpbik7CiAgICAgLy8gcHJpbnRmKCJzaXplIG9mIGV4cCBpcyAlbGQiLHN0cmxlbihwb3N0Zml4RXhwKSk7CiAgICAgcHJpbnRmKCIlZFxuIiwgZXZhbHVhdGVQb3N0Zml4KHBvc3RmaXhFeHApKTsKfQoKLy9kb25lCnZvaWQgcHVzaChpbnQgZGF0YSkgewoJLy8gZGF0YT1hdG9pKGRhdGEpOwogICAgIHN0cnVjdCBub2RlICpuZXdOb2RlOwogICAgIG5ld05vZGUgPSAoc3RydWN0IG5vZGUqKW1hbGxvYyhzaXplb2Yoc3RydWN0IG5vZGUpKTs7CiAgICAgKCpuZXdOb2RlKS5kYXRhID0gZGF0YTsKICAgICAoKm5ld05vZGUpLm5leHQgPSBOVUxMOwogICAgIC8vdXNlIGlzRW1wdHkgaWYgY2FuCiAgICAgaWYgKHRvcCAhPSBOVUxMKSB7CiAgICAgICAgICgqbmV3Tm9kZSkubmV4dCA9IHRvcDsKICAgICB9CiAgICAgdG9wID0gbmV3Tm9kZTsKfQovL2RvbmUKaW50IHBvcCgpIHsKICAgIHN0cnVjdCBub2RlICp0ZW1wID0gdG9wOwogICAgaW50IHJlbW92ZWQ7CiAgICAvL3VzZSBpc0VtcHR5IGlmIGNhbgogICAgaWYgKHRvcCAhPSBOVUxMKSB7CiAgICAgICAgcmVtb3ZlZCA9ICgqdG9wKS5kYXRhOwogICAgICAgIHRvcCA9ICgqdG9wKS5uZXh0OwogICAgICAgIGZyZWUodGVtcCk7CiAgICB9CnJldHVybiByZW1vdmVkOwoKfQoKIGludCBldmFsdWF0ZVBvc3RmaXgoY2hhciogZXhwKSB7CiAgICAgc3RydWN0IG5vZGUgKnRvcCA9IE5VTEw7CiAgICAgcHJpbnRmKCJzaXplb2YgZXhwIGlzICVsZCIsc3RybGVuKGV4cCkpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc3RybGVuKGV4cCktMTsgaSsrKSB7CiAgICAgIGlmIChpc2RpZ2l0KGV4cFtpXSkpIHsKICAgICAgICBwdXNoKGV4cFtpXS00OCk7CiAgICB9IGVsc2UgewogICAgICAgIGludCB2YWwxID0gcG9wKCk7CiAgICAgICAgaW50IHZhbDIgPSBwb3AoKTsKCXByaW50ZigidmFsMSVkXG4iLHZhbDEpOwoJcHJpbnRmKCJ2YWwyJWRcbiIsdmFsMik7CiAgICAgICAgc3dpdGNoKGV4cFtpXSkgewogICAgICAgICAgICBjYXNlICcrJzoKICAgICAgICAgICAgICAgIHB1c2godmFsMit2YWwxKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICctJzoKICAgICAgICAgICAgICAgIHB1c2godmFsMi12YWwxKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICcqJzoKICAgICAgICAgICAgICAgIHB1c2godmFsMip2YWwxKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICcvJzoKICAgICAgICAgICAgICAgIHB1c2godmFsMi92YWwxKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQpyZXR1cm4gcG9wKCk7Cgp9Cg==