2017-08-27 211 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),但我似乎无法找到成功完成此操作的逻辑。任何建议将是有益的,谢谢!控制台应用程序:打印到控制台溢出

回答

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); 
     } 

} 

除了打印的InOrderView内,我决定树装入从列表中选择列表,只是输出的...这似乎工作,但如果有人能找到一个更优雅的解决方案,我将不胜感激。谢谢