2014-09-21 149 views
0

this队列实现示例中,我无法理解类Node内部的内容,即接下来的Node。它与我们当前所在的节点类对象还是其他类相同。 deletefirst()如何删除第一个元素?队列实现使用链表

import java.io.*; 
    class Node 
    { 
       public int data; 
       public Node next; 
       public Node(int x) 
       { 
        data=x; 
       } 
       public void displayNode() 
       { 
        System.out.print(data+"  "); 
       } 
    } 
    class LinkList 
    { 
       

private Node first; 
   private Node last; 
   public LinkList() 
   { 
    first=null; 
    last=null; 
   } 
   public void insertLast(int x) 
   { 
    Node newNode=new Node(x); 
    newNode.next=null; 
    if(isEmpty()) 
     first=newNode; 
    else 
     last.next=newNode; 
    last=newNode; 
   } 
   public int deleteFirst() 
   { 
    int t=first.data; 
    if(first.next==null) 
     last=null; 
    first=first.next; 
    return t; 
   } 
   public int peekFirst() 
   { 
    return(first.data); 
   } 
   public boolean isEmpty() 
   { 
    return(first==null); 
   } 
   public void displayList() 
   { 
    Node current=first; 
    while(current!=null) 
    { 
     current.displayNode(); 
     current=current.next; 
    } 
   } 
    } 

回答

0

它通过它的指针移动到下一个节点的队列中移除元件

public int deleteFirst() 
{ 
    int t=first.data; // Gets data from first Node. 
    if(first.next==null) // Checks if next element is null. If true. Queue is empty so last element is null 
    last=null; 
    first=first.next; // Sets first to the next Node. <== This is where your magic happens. 
    return t; // Returns the removed item from your Queue 
}