Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- postfix = postfix.Trim();
- string[] ans = postfix.Split(' ');
- Stack<int> eval = new Stack<int>();
- for (int x = 0; x < ans.Length; x++)
- {
- if ("*+%/-".Contains(ans[x]))
- {
- int temp1;
- int temp2;
- switch (ans[x])
- {
- case ("*"):
- eval.Push(eval.Pop() * eval.Pop());
- break;
- case "-":
- temp1 = eval.Pop();
- temp2 = eval.Pop();
- eval.Push(temp2 - temp1);
- break;
- case "%":
- temp1 = eval.Pop();
- temp2 = eval.Pop();
- eval.Push(temp2 % temp1);
- break;
- case "+":
- eval.Push(eval.Pop() + eval.Pop());
- break;
- case "/":
- temp1 = eval.Pop();
- temp2 = eval.Pop();
- eval.Push(temp2 / temp1);
- break;
- }
- }
- else
- eval.Push(Convert.ToInt32(ans[x]));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement