예제 #1
0
 public void Insert(Trade trade)
 {
     Node newNode = new Node();
     newNode.item = trade;
     if (root == null)
         root = newNode;
     else
     {
         Node current = root;
         Node parent;
         while (true)
         {
             parent = current;
             if (trade.Price < current.item.Price)
             {
                 current = current.leftc;
                 if (current == null)
                 {
                     parent.leftc = newNode;
                     return;
                 }
             }
             else
             {
                 current = current.rightc;
                 if (current == null)
                 {
                     parent.rightc = newNode;
                     return;
                 }
             }
         }
     }
 }
예제 #2
0
 public void Inorder(Node Root)
 {
     if (Root != null)
     {
         Inorder(Root.leftc);
         Root.display();
         Inorder(Root.rightc);
     }
 }
예제 #3
0
 public void Preorder(Node Root)
 {
     if (Root != null)
     {
         Root.display();
         Preorder(Root.leftc);
         Preorder(Root.rightc);
     }
 }
예제 #4
0
 public void Postorder(Node Root)
 {
     if (Root != null)
     {
         Postorder(Root.leftc);
         Postorder(Root.rightc);
         Root.display();
     }
 }
예제 #5
0
 public Tree()
 {
     root = null;
 }
예제 #6
0
 private void print(String prefix, bool isTail, Node curNode)
 {
     if (curNode == null)
     {
         return;
     }
     print(prefix + (isTail ? "    " : "│   "), curNode.leftc == null, curNode.leftc);
     Console.WriteLine(prefix + (isTail ? "   " : "├── ") + curNode.item.Price.ToString());
     print(prefix + (isTail ? "    " : "│   "), curNode.rightc == null, curNode.rightc); 
     
     
 }
예제 #7
0
 public void print(Node root)
 {
     print("", true, root);
 }