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; } } } } }
public void Inorder(Node Root) { if (Root != null) { Inorder(Root.leftc); Root.display(); Inorder(Root.rightc); } }
public void Preorder(Node Root) { if (Root != null) { Root.display(); Preorder(Root.leftc); Preorder(Root.rightc); } }
public void Postorder(Node Root) { if (Root != null) { Postorder(Root.leftc); Postorder(Root.rightc); Root.display(); } }
public Tree() { root = null; }
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); }
public void print(Node root) { print("", true, root); }