我正在尝试学习不同的数据结构,而我目前正努力地研究图形。
我正在尝试使用链接列表映射来实现邻接列表。这样,我便可以搜索顶点的名称并快速查看其所有连接。
但是我很难添加任何连接。我目前正在做的是
public void add(V vertexName) {
if (!contains(vertexName)) {
ArrayList<V> array = new ArrayList<>();
adjList.put(vertexName,array);
}
}
public void connect(V start, V destination) {
if (!contains(start) || !contains(destination))
throw new NoSuchElementException();
adjList.get(start).add(destination); //adds destination to starts arraylist
}
System.out.print(adjList.toString);
但是,例如,如果我将12、10和20添加到列表中,然后将20和12连接起来,我仍然会得到:
12
10
20
代替
12
10
20 - > 12
任何提示将不胜感激。如果有帮助,adjList是一个
Map<V,ArrayList<V>> adjList;
我只是想从有向无加权图开始做起,使事情变得简单