Advertisement
Evyatar12

EXERCISES 24.04

Apr 24th, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.57 KB | None | 0 0
  1.         static bool isLeaf<T>(BinNode<T> bt)
  2.         {
  3.             return bt.HasRight() && bt.HasLeft();
  4.         }
  5.  
  6.         public static string WordInMaze(BinNode<char> bt)
  7.         {
  8.             char val = bt.GetValue();
  9.  
  10.             if (val == '!')
  11.                 return null;
  12.  
  13.             if (isLeaf(bt))
  14.                 return val.ToString();
  15.  
  16.             string valRight = WordInMaze(bt.GetRight());
  17.             string valLeft = WordInMaze(bt.GetLeft());
  18.            
  19.             if (valRight == null && valLeft == null)
  20.                 return null;
  21.  
  22.             if (valRight != null)
  23.                 return val.ToString() + valRight;
  24.  
  25.             if (valLeft != null)
  26.                 return val.ToString() + valLeft;
  27.  
  28.             return val.ToString();
  29.         }
  30.  
  31.         // pass a binary tree and a reference to the index
  32.         public static T GetValueAt<T>(BinNode<T> bt, ref int index)
  33.         {
  34.             if (bt == null)
  35.                 return default(T);
  36.  
  37.             T x;
  38.  
  39.             // try getting the value from the left sub-tree
  40.             x = GetValueAt(bt.GetLeft(), ref index);
  41.             if (index < 0)
  42.                 return x;
  43.  
  44.             // try getting the value from this tree
  45.             if (index == 0)
  46.             {
  47.                 index--;
  48.                 return bt.GetValue();
  49.             }
  50.  
  51.             index--;
  52.  
  53.             // try getting the value from the right tree
  54.             x = GetValueAt(bt.GetRight(), ref index);
  55.             if (index < 0)
  56.                 return x;
  57.  
  58.             return default(T);
  59.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement