Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2018
545
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.05 KB | None | 0 0
  1. using System;
  2.  
  3. namespace BinaryTrees
  4. {
  5.     public class BinaryTree<T> where T : IComparable
  6.     {
  7.         public TreeNode<T> Root;
  8.  
  9.         public void Add(T key)
  10.         {
  11.             if (Root == null) Root = new TreeNode<T>(key);
  12.             else
  13.             {
  14.                 var item = Root;
  15.                 while (true)
  16.                 {
  17.                     var nextItem = key.CompareTo(item.Value) < 0 ? item.Left : item.Right;
  18.                     if (nextItem == null)
  19.                     {
  20.                         nextItem = new TreeNode<T>(key);
  21.                         if (key.CompareTo(item.Value) < 0) item.Left = nextItem;
  22.                         else item.Right = nextItem;
  23.                         break;
  24.                     }
  25.                     item = nextItem;
  26.                 }
  27.             }
  28.         }
  29.  
  30.     }
  31.  
  32.     public class TreeNode<T> where T : IComparable
  33.     {
  34.         public T Value;
  35.         public TreeNode<T> Left, Right;
  36.  
  37.         public TreeNode(T key)
  38.         {
  39.             Value = key;
  40.         }
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement