2017-08-27 8 views
0
static void InOrderView(TreeNode myTree) 
    { 
     Console.WriteLine("{0,-20}{1,-8}{2,-8}{3,-8}{4,-8}", "v1", "v2", "v3", "v4", "v5"); 
     if (myTree != null) 
     { 
      InOrderView(myTree.Left); 
      Console.WriteLine("{0,-20}{1,-8}{2,-8}{3,-8}{4,-8}", myTree.v1, myTree.v2, myTree.v3.ToString(), Convert.ToInt32(v4.IFLAG), Convert.ToInt32(myTree.v5)); 
      InOrderView(myTree.Right); 
     } 
    } 

私はバイナリ検索ツリーを作成し、出力をコンソールに制限できるように変更したいと考えています。つまり、一度に〜18個のノードを印刷し、Enterを押して続行するように促します。私の試みは整数カウンタをInOrderView(Tree、int)に渡すことを含んでいますが、これを正常に行うためのロジックを見つけることができないようです。どんな提案も役に立ちます。ありがとう!代わりに、私はリストからリストとちょうど出力にツリーをパックすることを決めたInOrderView内印刷のコンソールアプリケーション:コンソールオーバーフローへの印刷

答えて

0
static void InOrderView(TreeNode myTree, ref List<TreeNode> myList) 
    { 

     if (myTree != null) 
     { 
      InOrderView(myTree.Left,ref myList); 
      myList.Add(myTree); 
      InOrderView(myTree.Right,ref myList); 
     } 

} 

...これは動作するようですが、誰もがよりエレガントな解決策を見つけることができれば、私はそれをお願い申し上げます。ありがとうございました