2015-12-21 64 views
0

我在描述使用Java的隊列的電源點上找到了此示例。 整個代碼是好的,直到我得到它增加了新的節點或新的值到隊列Add方法,這裏是add方法的代碼:無法理解此隊列的添加方法

public void add(String value){ 
     Node node = new Node(value, null); 
     if(isEmpty()) 
      front = rear = node; 
     else { 
      //I don't understand these two lines 
      rear.next = node; // 
      rear = node; // 
     } 
    } 

我不明白上面的兩行rear.next=noderear =node,乳清我們分配下和當前到節點的同一個對象?
下面是類節點的代碼:

class Node { 
     String value; 
     Node next; 

     public Node(String value, Node next) { 
      this.value = value; 
      this.next = next; 
     } 
     public Node(String value) { 
      this.value = value; 
     } 
    } 
+2

當你在紙上畫出來時,你看到了什麼? –

+0

@SotiriosDelimanolis:我把紙堆在紙上3次,我很抱歉,我無法想象它:(因此我發佈了它 –

回答

1

追加節點到隊列的末尾。或者換句話說,結束後的節點應該是新節點:

rear.next = node; 

現在,我們已經追加到末尾的一個節點,最後一個節點是不同的,而不是它是什麼,我們之前追加。新的最後一個節點是我們剛添加的節點:

rear = node; 
+0

所以'rear = node'意味着後部移動到隊尾,對嗎? –