Пример #1
0
 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);
         }
     }
 }
Пример #2
0
 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);
 }
Пример #3
0
 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);
 }