Java - 作为LinkedLists的队列 - 向队列添加新节点

时间:2014-03-16 23:58:14

标签: java linked-list queue

我正在使用Queue作为LinkedList,将元素添加到列表的后面并从前面删除它们。然而,我正在努力解决添加新节点的问题,因为我无法使用FIFO将预先存在的节点链接在一起。

您可以在此图片下方看到我的方法。

enter image description here

 public void add(Object data)
    {
 if data == null) throw new IllegalArgumentException() ;

 Node newNode = new Node (data, null);

 if (size == 0){ //- remember we are adding elements to the back
   tail = newNode;
   head = newNode;
 }
 else {
  tail = newNode; //right
  newNode.next = head.next; //??? What should be in place of this?

 }
 size++;

    }

我按照图表但不知道如何引用上一个节点。这是给予该类的信息。

public class QueueNode
{
    private Node head, tail ;
    private int size ;
    /**
       inner class for Node
    */
    private static class Node
    {
 Node next ;
 Object data ;

 public Node(Object data, Node n)
 {
     next = n ;
     this.data = data ;
 }
    }
    /**
       Constructor for queue
     */
    public QueueNode()
    {
 head = tail = null ;
 size = 0 ;
    }

//课程的其余部分(不需要)

1 个答案:

答案 0 :(得分:1)

您只需要为正在添加的节点设置当前尾部广告的下一个。而newnode将成为尾巴。

tail.next = newNode;
tail = newNode

你试过了:

tail = newNode; //right  

//是的,对,但是设置' next'在你失去参考之前,首先是当前的尾巴。

newNode.next = head.next; //??? What should be in place of this?

//不,在添加新节点时,您不需要对头部做任何事情。