如何从 ArrayList 构建一个基本的对象树(在这种情况下,我的 Person 类中的 Person 对象)?从概念上讲,我了解树是如何工作的,如何将对象添加到我的数组列表中,但是我在树的构建方面遇到了很多麻烦,并且将节点链接在一起我似乎觉得不知所措。此外,从我所做的研究来看,递归算法似乎是解决这个问题的最佳方法。这是真的吗?我是Java初学者,所以请提供详细的答案,而不仅仅是代码。
这是我拥有的 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){
this.id = id;
this.state = state;
//this.zombie = 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)
id 喜欢创建树结构,这样就没有交叉链接。树结构中的每个人只能存在于一个朋友的列表中,并且会有一个人在没有人的朋友列表中(树的根)。每个朋友只能有两个朋友。(我假设这是一棵二叉树)
编辑:我可以使用 java 提供的树形图吗?