Ejemplo n.º 1
0
 private void Insert(int key, string value, BitreeNode n)
 {
     if (n.Key < key)
     {
         if (n.Right == null)
         {
             n.Right = new BitreeNode
             {
                 Key   = key,
                 Value = value
             };
         }
         else
         {
             Insert(key, value, n.Right);
         }
     }
     else
     {
         if (n.Left == null)
         {
             n.Left = new BitreeNode
             {
                 Key   = key,
                 Value = value
             };
         }
         else
         {
             Insert(key, value, n.Left);
         }
     }
 }
Ejemplo n.º 2
0
 private BitreeNode Find(int key, BitreeNode n)
 {
     if (n == null)
     {
         return(null);
     }
     if (n.Key == key)
     {
         return(n);
     }
     if (n.Key < key)
     {
         return(Find(key, n.Right));
     }
     else
     {
         return(Find(key, n.Left));
     }
 }
Ejemplo n.º 3
0
 public string this[int key]
 {
     get
     {
         if (root == null)
         {
             return(null);
         }
         else
         {
             return(Find(key, root).Value);
         }
     }
     set
     {
         if (root == null)
         {
             root = new BitreeNode
             {
                 Key   = key,
                 Value = value
             };
         }
         else
         {
             var node = Find(key, root);
             if (node != null)
             {
                 node.Value = value;
             }
             else
             {
                 Insert(key, value, root);
             }
         }
     }
 }