我剛剛開始使用圖形,並試圖使用城市建立鄰接列表。這兩個城市被髮送到addRelation方法。我想說,如果已經沒有匹配第一個或最後一個字符串的頂點,請使用尚不存在的字符串創建一個新的頂點。現在我所得到的是一個空指針異常,與*一致。有沒有人對我做錯了什麼或者我應該做什麼有什麼想法?鄰接列表添加關係
public class AdjList {
public class Node{
int num;
Node next;
Node(int num, Node next){
this.num=num;
this.next=next;
}
}
public class Vertex{
String city;
Node list;
Vertex(String city, Node next){
this.city=city;
this.list=next;
}
}
Vertex [] aList= new Vertex [50];
void addRelation(String from, String to) {
for(int i=0; i<aList.length; i++){
****if(!aList[i].city.equals(from)){****
aList[i]=new Vertex(from, null);
}
if(aList[i].city.equals(from)){
aList[i]=new Vertex(from, null);
}
}
}
主營:
public static void main(String args[]) {
AdjList g = new AdjList();
g.addRelation("Atlanta", "Chattanooga");
g.addRelation("Chattanooga", "Nashville");
g.addRelation("Chattanooga", "Knoxville");
g.addRelation("Atlanta", "Birmingham");
g.addRelation("Greenville", "Knoxville");
}
'aList'數組現在充滿了空值。所以當你訪問'aList [i]'時,它會拋出NPE – Alejandro
@AlejandroLucena,所以我必須首先檢查aList [i] == null? – user3277779
好吧,是的,不。你可以這樣做,或者在調用'addRelation'之前循環並用虛擬'頂點'實例填充數組。 – Alejandro