I got the data structure of stack and binary tree in last article,and finally I got a stack what can describe algebraic expression clearly.Now I can create a expression tree with this stack.

### Create the expression tree

This expression tree is a binary tree because each function has 2 arguments commonly.So there are 3 things to describe an algebraic:operator,1st operand(orginal) and 2nd operand.I set binary tree node's left child is the 1st operand,right child is the 2nd operand and its value is the operator.

For example,1+2 is writen

Before create the expression tree,I have to deal with the stack I got before.Because that stack is a reverse array to describe the algebraic expression.

#### Reverse stack

Um..that's all.

And create an empty stack to store the operands temporarily while pop this stack.

#### Create expression tree and assign elements

By this way,I get the correct expression tree.

For example,I input "A+b-x*(12.13+51y)1.4121" before,now I get a binary tree:

### Traverse the binary tree and create functional expression

This is an iterative process.I convert each child node into a functional expression,such as