public void makeCalcTree(string str) { Node2 [] temp = new Node2[str.Length / 2 + 1]; Node2 [] tempRoot = new Node2[str.Length / 2]; for (int i = 0; i < temp.Length; i++) { temp[i] = new Node2(); temp[i].val = str[i * 2]; } for (int i = 0; i < tempRoot.Length; i++) { tempRoot[i] = new Node2(); tempRoot[i].val = str[i * 2 + 1]; } for (int i = 0; i < tempRoot.Length; i++) { if (i == 0 && (tempRoot[i].val == '*' || tempRoot[i].val == '/')) { tempRoot[i + 1].left = tempRoot[i]; } else if ((tempRoot[i].val == '*' || tempRoot[i].val == '/')) { tempRoot[i - 1].right = tempRoot[i]; } else if (i == 0 && (tempRoot[i].val == '+' || tempRoot[i].val == '-')) { } else if ((tempRoot[i].val == '+' || tempRoot[i].val == '-')) { } } root2 = tempRoot[tempRoot.Length - 1]; PostOrder(ref root2); for (int i = 0; i < temp.Length; i++) { //Console.WriteLine(temp[i].val); PostOrder2(ref root2, ref temp[i]); } }
public Node2 PostOrderTrav(ref Node2 temp) { if (temp == null) { return(null); } if (temp.left == null && temp.right == null) { return(temp); } else { PostOrderTrav(ref temp.left); PostOrderTrav(ref temp.right); return(temp); } }
public BinaryTree() { root = null; root2 = null; }
public int CalcString(ref Node2 temp) { return(0); }
public Node2() { left = null; right = null; }