再帰的に実装する方法は 3 つあります。はい、これは学校向けですので、単純明快な回答は不要です。説明的な回答をいただければ幸いです。私はツリー構造が初めてです。
3つの方法は次のとおりです...
public class Zombies{
public static int countPeople(Person p){...}
// counts all the people in the tree structure
// starting with Person p.
public static int countZombies(Person p){...}
// counts all the people in the tree structure
// starting with Person p that are zombies
public static void draw(Person p){...}
// draws a diagram of the people in tree structure
// starting with Person p.
// each person will be denoted by a P and
// person that is a zombie will be denoted by a Z
//
// The diagram should illustrate the family tree
// structure. Each person will be drawn with 3 minus
// signs '-' for each level below p.
Person クラスを開始しましたが、いくつか質問があります。
1)私は私の個人クラスで正しい軌道に乗っていますか
2)メソッドの説明で言及されているツリー構造はバイナリツリーですか?
3)これらのメソッドを実装できるようにするために何が欠けていますか(何かがある場合、またはこのツリー構造に必要なビルディングブロックがある場合)
以下は私の Person クラスです。
public class Person{
public int id; // some identification number unique to the person
public boolean zombie; // true if the person is a zombie
public char state; // p means human, z means zombie
public ArrayList<Person> friends; // list of friends
public Person(int id, char state, boolean zombie){
this.id = id;
this.state = state;
this.zombie = zombie;
}
public boolean isZombie() {
if (state == 'p'){
return zombie=false;
}
else if (state == 'z'){
return zombie=true;
}
return zombie;
}
}
ツリーのタイプの出力例は次のとおりです。
P (this is Person q)
---P (this is a friend of q, say q1)
------P (this is a friend of q1)
------Z (this is another friend of q1, who is a zombie)
---Z (this is a friend of q, say q2, who is a zombie)
------Z (this is a friend of q1, who is also a zombie)
------P (this is a friend of q1, who is not a zombie)
忍耐と助け/入力を前もって感謝します!