我对Java还不熟悉,请在投票前记得这一点。我熟悉使用数组实现整数图的流行方法。
Graph{
int vertices;
LinkedList<Integer>[] adj;
Graph(int vertices){
this.vertices = vertices;
adj = new LinkedList<>();
for(int i= 0; i <vertices; i++){
adj[i] = new LinkedList();
}
}
然而,这种实现最适合整数图。如果我想要实现字符图,这种实现就不能直接使用。因此,我尝试使用 HashMap 实现。
public class Graph {
int vertices;
HashMap<Character, LinkedList<Character>> adj;
Graph(int item){
this.vertices = item;
adj = new HashMap<>();
}
}
在Java语言中,我在向HashTable添加键和值方面遇到了一些句法上的困难。我的目标是实现这个方法。
public void add(Character a, Character b){
if (adj.containsKey(a)){
//get a reference to the existing linked list
//add to the existing LinkedList
}else{
//create a new LinkedList and add to it.
}
}
}
我需要帮助完成add方法以及如何在构建图后遍历adj HashMap。