Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 打印树程序_Java_Tree_Binary Tree - Fatal编程技术网

Java 打印树程序

Java 打印树程序,java,tree,binary-tree,Java,Tree,Binary Tree,我需要帮助解决以下测试问题(这不是家庭作业或作业) 用户可以从控制台输入1-9的值,程序接受3个数字,每行一个数字。 如果用户输入以下内容: 三, 二, 四, 输出应为: 1 2 2 3 3 3 1 2 2 1 2 2 3 3 3 4 4 4 4 我没有任何

我需要帮助解决以下测试问题(这不是家庭作业或作业) 用户可以从控制台输入1-9的值,程序接受3个数字,每行一个数字。 如果用户输入以下内容:

  • 三,
  • 二,
  • 四,
输出应为:

              1
             2 2
            3 3 3
             1
            2 2
               1
              2 2
             3 3 3
            4 4 4 4
我没有任何关于树的经验,所以请告诉我那是什么样的树,我从哪里开始完成上面的程序(我需要一些提示和建议来帮助我完成这个程序)


提前感谢。

定义一个二维字符数组,用于保存数字。从上到中开始。使用递归

不需要树数据结构。您的程序的一般功能如下:

  • 读取三个输入
  • 对于每个输入n,使用从1到n的For循环以n作为输出值打印n行
  • (稍微难一点的部分:)在每一行上,您还需要生成所需的间距。这将涉及基于n和最大值n的零件计算。因为n是一个单位数,所以当n>=10时,您不必考虑它占用更多的字符

纯代码编写请求与主题无关。但是,您可以就您尝试过但未达到预期效果的内容提出特定问题。@assylias,请告知这是一棵什么样的树,我可以从哪里开始,以便完成此程序。这不是一棵树。这只是一个图案打印程序。请注意,每行开始时比前一行少1个空格,并且包含x
x
s,以空格分隔。因此,第一行以n个空格开始,后跟1
1
,下一行少1个空格,2
2
s,下一行少1个空格,3
3
s,等等。这可以通过一个简单的for循环和1D字符数组来解决(我不会为您编码)。@Dukeling,谢谢分享这个想法。当然也可以不用递归。这个想法是,对于当前=左和当前=右,向下-添加左-添加右-执行。然而,这样做确实会使某些单元格获得两次(相同的)值。