public Leaf Classify(Datarow row)
        {
            Node node;

            if (Root is DecisionNode)
            {
                node = (Node)(Root as DecisionNode).Clone();
            }
            else
            {
                node = (Node)(Root as Leaf).Clone();
            }

            while (!(node is Leaf))
            {
                if ((node as DecisionNode).Question.Match(row))
                {
                    node = (node as DecisionNode).TrueBranch;
                }
                else
                {
                    node = (node as DecisionNode).FalseBranch;
                }
            }
            return((Leaf)node);
        }
 public static Datarow[] GetDatarowsFromStringArray(string[] data)
 {
     Datarow[] datarows = new Datarow[data.Length];
     for (int i = 0; i < data.Length; i++)
     {
         datarows[i] = new Datarow(data[i]);
     }
     return(datarows);
 }