public void Insert(NodeInt newNode) { if (Root == null) { Root = newNode; return; } NodeInt parent = null, node = Root; while (true) { parent = node; if (newNode < node) { node = (NodeInt)node.Left; if (node == null) { parent.Left = newNode; return; } } else { node = (NodeInt)node.Right; if (node == null) { parent.Right = newNode; return; } } } }
public NodeInt Find(NodeInt target) { var node = Root; while (node != null && node.Value != target.Value) { if (target < node) { node = (NodeInt)node.Left; } else { node = (NodeInt)node.Right; } } return(node); }