public class Node
{
public enum NodeType { sum, minus, divison, multiplication, number};
public NodeType ntype;
public Node left;
public Node right;
public int value;
public Node(Node l, Node r, NodeType n, int num)
{
left = l;
right = r;
ntype = n;
value = num;
}
public void print(Node n, int offset)
{
for (int i = 0; i < offset; i++)
Console.Write(" ");
string s = "+-/*";
if (n.ntype == NodeType.number)
Console.WriteLine(n.value);
else
Console.WriteLine(s[(int)(n.ntype)]);
if (n.left != null)
print(n.left, offset + 4);
if (n.right != null)
print(n.right, offset + 4);
}
Node res = new Node(new Node(
new Node(null, null, Node.NodeType.number, 5),
new Node(null, null, Node.NodeType.number, 2),
Node.NodeType.sum,
0),
new Node(null, null, Node.NodeType.number, 3),
Node.NodeType.multiplication,
0);
res.print(res, 0);
Console.Read();