コード例 #1
0
        public List <Tree <T> > Traverse(Tree <T> root, TRAVERSAL direction)
        {
            List <Tree <T> > result = new List <Tree <T> >();

            RecursiveTraverse(ref result, root, direction);
            return(result);
        }
コード例 #2
0
 private void RecursiveTraverse(ref List <Tree <T> > result, Tree <T> trunk, TRAVERSAL direction)
 {
     if (direction == TRAVERSAL.TOPDOWN)
     {
         result.Add(trunk);
     }
     foreach (Tree <T> t in trunk.Children)
     {
         RecursiveTraverse(ref result, t, direction);
     }
     if (direction == TRAVERSAL.BOTTOMUP)
     {
         result.Add(trunk);
     }
 }