■31169 / ) |
Re[1]: 再帰的データ構造 |
□投稿者/ のりよし (3回)-(2009/01/16(Fri) 00:58:31)
|
たまたま同時刻に書き込みしたみたいなので回答してみます。
(ソースコードは見やすく書いたほうがよいですよ。
投稿モードを図表モード選択にして書くとよいみたいです。)
class Cell{
int data;
Cell next;
}
class sample{
public static void main(String[] args){
Cell a = new Cell();
Cell b = new Cell();
Cell c = new Cell();
Cell d = new Cell();
a.data=3;
a.next=c;
b.data=2;
b.next=a;
c.data=1;
c.next=b;
d.data=0;
d.next=d;
System.out.println("(1)"+b.next.data);
System.out.println("(2)"+a.next.next.next.next.next.data);
System.out.println("(3)"+d.next.next.data);
(1)は3
b.nextはaで、a.dataを出力しているため。
(b.next).dataの括弧内がそっくりそのままaになると考えてみてください。
a.dataを出力していることと同じですよね。
以降の(2),(3)も同様に一個ずつ読み替えて考えます。
(2)は2
a.nextはcで、c.nextはbで、b.nextはaで、
a.nextはcで、c.nextはbで、結局b.dataを出力しているため。
(3)は0
d.nextはd自身で、d.nextはd自身で、d.dataを出力しているため。
(あと何回 .next.next.next… を書いてもやっぱり結果は0です。)
わかりづらかったらごめんなさい。
|
|