private void TraverseAndAdd(SGLNode <T> parent, SGLNode <T> newSGLNode) { if (parent.Id() < newSGLNode.Id()) { if (parent.GetRight() == null) { parent.SetRight(newSGLNode); } else { TraverseAndAdd(parent.GetRight(), newSGLNode); } } else { if (parent.GetLeft() == null) { parent.SetLeft(newSGLNode); } else { TraverseAndAdd(parent.GetLeft(), newSGLNode); } } }
private string PreOrderTraversal(SGLNode <T> SGLNode, string arg) { if (SGLNode != null) { arg = SGLNode.Id().ToString() + " " + PreOrderTraversal(SGLNode.GetLeft(), arg) + PreOrderTraversal(SGLNode.GetRight(), arg); } return(arg); }
public string PostOrderTraversal(SGLNode <T> SGLNode, string arg) { if (SGLNode != null) { arg = PostOrderTraversal(SGLNode.GetLeft(), arg) + PostOrderTraversal(SGLNode.GetRight(), arg) + SGLNode.Id().ToString() + " "; } return(arg); }