gpt4 book ai didi

java - java中的相互链接列表

转载 作者:行者123 更新时间:2023-12-01 14:52:04 25 4
gpt4 key购买 nike

在“平面”链表结构中,每个对象都通过单个指针链接到下一个对象。

我正在寻找的是一种拥有一组节点的方法,并让它们以链表方式互连。

class Person{
public Person next;
private String name;

//Contructor method et. cetera.
}

class List{
private Person personlist, lastperson;
private int counter;

List(){
Person lh = new Person("LISTHEADER");
personListe = lh;
sistePerson = lh;
}
//insert getters and setters ++.
}

在其他情况下,也很自然地包含指向前一个对象的指针。但是如果列表中的所有节点都需要互连怎么办?

假设我有三个人对象; A、B、C 和我想制作一个包含每个人的 friend 的列表。比方说A 与 B 和 C 是 friend 。B 与 A 和 C 是 friend 。C 与 A 和 A 是 friend 。

如果我尝试使用第一个提到的链表结构来实现这一点,那么对于一个 person 对象来说,只有一个指向下一个对象的指针似乎是不够的,因为 B -> A -> C 意味着 A 的下一个对象-指针指向C,因此C -> A-> B 现在是不可能的。

有没有一种方法可以使数据结构类似于链表,其中每个对象都可以保存指向其他节点的多个指针,并且仍然是“列表”中的元素,而不是让每个对象都指向下一个对象本身?

最佳答案

您正在寻找的是图形结构。您可以尝试使用一个散列,其中键作为人名,值作为他所有 friend 的链接列表。

Example:
hash(A) contains B->C
hash(B) contains C->A
hash(C) contains A->B

您可以检查java中邻接表的实现。

关于java - java中的相互链接列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14749672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com