队列的不同实现方法

每天一点点,从简单开始。

队列的不同实现方法(先进先出)

 //使用linked-list实现
 //@author 180296
 // 保存指向首尾节点的指针,每次从链表尾插入,从链表头删除

  public class LinkedQueueOfStrings {
    private Node first,last;
    //判断第一个元素是否为空
    public boolean isEmpty(){
        return first==null;
    }
    public void insertLink(String data){
        //先把last给一个变量存起来,用于接尾,然后挪到last
        Node oldLast = last;
        last = new Node();
        last.data = data;
        last.next = null;
        if(isEmpty()) first = last;
        else oldLast.next = last;
    }
    public String removeLink(){//从队头出列
        if(isEmpty()){ last = null;return null;}
        else{
            String data = first.data;
            first = first.next;
            return data;
        }
    }
    public static void main(String[] args) {
        LinkedQueueOfStrings links = new LinkedQueueOfStrings();
        System.out.println("insert before:"+links.removeLink());
        links.insertLink("xiao");
        links.insertLink("song");
        links.insertLink("dong");
        String data = links.removeLink();
            do{
               System.out.println(data);
               data = links.removeLink();
            }while(data != null);
     }  
  }
   class Node{
      Node next;
      String data;
  }





lss博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论