Sam*_*Sam 1 java search data-structures
我有一个Person的对象结构,如下所示,我想根据其名字搜索一个Person。
public Person{
String name;
List<Person> person;
}
Run Code Online (Sandbox Code Playgroud)
我们该如何实现搜索方法?
将存在一个根对象,即Person,它与其他人有链接,依此类推。
人的名字是唯一的。
搜索签名可以是
public Person findPerson(Person root, String name){
}
Run Code Online (Sandbox Code Playgroud)
有人可以为此建议其他解决方案吗?
您将需要递归。遍历列表中的所有人员,并在该人员中搜索相同的目标。找到目标后,请返回并停止所有搜索。
这是一些伪代码:
Person search(Person, Name)
if (Person.Name == Name) return Person;
for each subPerson in Person.person:
Person found = subPerson.search(Person, Name);
if (found != null) return found;
return null;
Run Code Online (Sandbox Code Playgroud)