I write a C code to convert infix expression to postfix expression. The expression may include '^' , "+", "-" , "/", "*" and all three types of brackets i.e." ({[ ". The code should first check whether the brackets are balanced or not and then do the conversion. But the code is showing an empty stack at the output.
Here is my sample code
...This is the pseudo code. Create a function that takes an infix expression as input and converts it to a postfix expression. It should
take pointers to two strings as input; one containing the infix expression, and second to which this
function will write the postfix expression i.e. the declaration should be
void infixToPostfix(char *infix, char *postfix, int str_size);
The algorithm is as follows:
Iterate over the infix expression’s string. For each character c,
• If c is an operand, concatenate it with the postfix expression.
• If c is an operator, check if top of stack, say m, is an operator. If so, check if the operator
precedence of m is higher or equal to the operator precedence of c; if yes, concatenate m with
postfix expression, and pop it from the stack. Keep doing this until the top of stack is not an
operator with operator precedence higher or equal to the operator precedence of c. Then push
c on the stack.
• After completely processing input expression, TopAndPop remaining operators from stack and
concatenate each with postfix expression, in the order they are popped.
You can perform string concatenation using strcat().
...