【お題】絵本のタイトル

以下の問題があります。
2日間悩みましたがわかりません。

再帰処理を行うことはわかるのですが、具体的なプログラムがわかりません。
次のステップに進めず困っています。
ソースとその解説をお願いします(>_<)


木構造を以下の形式で画面に表示するプログラムを作成する。
親に対する空白は2文字分の字下げとする。

0
 1
  3
   8
   9
  4
  5
 2
  6
  7
    10


下記のprintChildメソッドをTreeクラス内に定義して完成させよ。


class Tree{
 private static int table[][]={
  {0,1},{0,2},{1,3},{1,4},{1,5}
  {2,6},{2,7},[3,8],[3,9],[7,10]
 };

 public static void main(String args[]){
  printChild(0,0);


 }
}

A 回答 (1件)

//解説は苦手なのでソースから読み取ってください。


//一応二日間考えたみたいだし,考えているうちにこんがらがっただけなんだろうから多分頭を空にして読み直せば理解できるとは思う。

class Tree{

private static int table[][]={
{0,1},{0,2},{1,3},{1,4},{1,5},
{2,6},{2,7},{3,8},{3,9},{7,10}
};

public static void main(String args[]){
printChild(0,0);

}

private static void printChild(int subTreeRootNode,int recursionStep){

for(int j = 0; j < recursionStep; j++){
// gooのシステムに消されるから解りにくいけどprintの引数は
// 半角空白二文字からなる文字列です。
System.out.print(" ");
}
System.out.print(Integer.toString(subTreeRootNode));
System.out.print("\n");

for(int i = 0;i < table.length;i++){
if (table[i][0] == subTreeRootNode){
printChild(table[i][1],recursionStep + 1);
}

}

}
}
    • good
    • 0
この回答へのお礼

丁寧な回答ありがとうございます<(_ _)>

プログラムもキレイに動きました。
ソースもすごく丁寧に書いていただいてありがとうございます。
配列の二重ループのイメージですね♪
自分にとっては何よりの解説ですごく勉強になりました。

ありがとうございました。

お礼日時:2008/06/17 02:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!