1. ## A doubt about changing notation

Hello, I have been trying to do aschool project where I must change from a kind of notation to another and solve the wanted operation, it must do what supostly is done by the compiler, it should change the notation, like this:
4 + 4
to
4 4 +

and it should work for all operative signs(+ - * / %)

but keeping the importance of the operations, also it should return the correct results of course
here's another example
(6 + 2) * 5 - 8 / 4 should change to

6 2 + 5 * 8 4 / -

please, it is urgent, any idea will be extremely apreciated
thanks

2. Consider using a stack.

3. I'd use a Binary Tree adapted to math expressions, since all operators are binary.

EDIT:
Example:
Code:
```Expression: 1*2+3/4
Tree:
+
/ \
*   '/'
/  \ /  \
1  2 3  4

Expression: 1*2*3+4
Tree:
4
/
*
/ \
*   3
/ \
1   2```
Then to print in prefix, in each node print the operator then the two sub-nodes (left and right). To print infix print the left subnode, the operator then the right node. To print postfix print the subnodes then the operator. If you want to use parenthesis, in each node print the opening one, them the expression, them close them.
These rules for writing apply both when subnodes have operator or arithmetic values.
And, the lower the node, the higher the operator precedence.

4. The problem is I donŽt know how to use a binary tree,
or a stack

5. Read my 1st post. You don't know how to use the tree so here's an example. A tree is nothing more than a bunch of nodes connected together.
Code:
```//done on the fly, in the post editor
#define NODETYPE_OPERATOR 1
#define NODETYPE_NUMBER 2
struct Node{
int value;//interger, or ascii value of operator
int type;
Node *left;
Node *right;
}

//to print, in infix
void print(Node *n){
if(n->type==NODETYPE_OPERATOR){
print(n->left);
print(n->right);
}else if(n->type== NODETYPE_NUMBER){