Exemplo n.º 1
0
        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]);
            }
        }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
 public BinaryTree()
 {
     root  = null;
     root2 = null;
 }
Exemplo n.º 4
0
 public int CalcString(ref Node2 temp)
 {
     return(0);
 }
Exemplo n.º 5
0
 public Node2()
 {
     left  = null;
     right = null;
 }