<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 22, comments - 32, trackbacks - 0, articles - 73
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    JAVA 實現鏈表隊列

    Posted on 2017-03-28 15:48 為自己代言 閱讀(396) 評論(0)  編輯  收藏 所屬分類: 算法/數據結構
    package stacktest;

    /**
    * @Author: zzz
    * @CreateTime: 2017/3/28 10:52
    * @Description: 隊列特點(先進先出),鏈表實現的隊列 在隊頭刪除元素,在隊尾插入元素。
    * 這樣才能滿足隊列的特性。
    */
    public class MyQueue<T> {
    private Node<T> front; //隊列頭,只能刪除元素

        private Node<T> rear; //隊列尾,只能用來插入入元素

        private int size;//隊列的長度

    /**
    * 初始化隊列
    */
    public MyQueue() {
    front = new Node<T>();
    rear = front;
    }

    /**
    * 鏈表的數據結構
    */
    private class Node<T> {
    public T data;
    public Node<T> next;

    public Node(T data, Node next) {
    this.data = data;
    this.next = next;
    }

    public Node(T data) {
    this.data = data;
    }

    public Node() {
    }
    }

    public void add(T data) {
    //新插入的節點永遠是尾節點,它的next 指向null(即沒有后繼節點)
            Node newNode = new Node(data, null);
    //讓尾節點next指向新節點
            rear.next = newNode;
    rear = newNode;
    size++;
    }

    public T pop() throws Exception {
    if (size < 1) {
    throw new Exception("錯誤,隊列為空。");
    }
    Node<T> nextNode = front.next;

    front.next = nextNode.next;
    size--;
    if (size < 1) {
    rear = front;
    size = 0;
    }
    return nextNode.data;

    }

    //取隊首元素

    public T peek() throws Exception {
    if (size < 1){
    throw new Exception("錯誤,隊列為空。");
    };
    return front.next.data;

    }
    //返回隊列的大小
    public int getSize() {
    return size;
    }

    //判斷隊列是否為空
    public boolean isEmpty() {
    return size == 0;
    }

    /**
    * 遍歷算法,移動front指針,直到front指針追上rear指針
    */
    public void traverse(){
    for(Node currentNode=front.next; currentNode!=null; currentNode=currentNode.next ){
    System.out.println(currentNode.data);
    }
    }

    public static void main(String[] args)throws Exception{
    MyQueue<String> queue=new MyQueue<>();
    for(int i=0;i<10;i++){
    queue.add("88888-"+i);
    }

    /* for(int i=0;i<10;i++){
    String s=queue.pop();
    System.out.print(s+";");
    }*/
    queue.traverse();

    }
    }
    主站蜘蛛池模板: 久久久久久一品道精品免费看 | 免费观看在线禁片| 免费va在线观看| 亚洲成在人线在线播放无码| 毛片免费在线播放| 亚洲 欧洲 日韩 综合在线| 免费A级毛片无码A∨免费| 337p日本欧洲亚洲大胆艺术| 一级成人a毛片免费播放| 国产成人麻豆亚洲综合无码精品| 99久久国产精品免费一区二区| 久久精品一区二区免费看| 国产成人毛片亚洲精品| 国产日韩在线视频免费播放| 国产日产亚洲系列最新| 日韩a级无码免费视频| 亚洲va久久久噜噜噜久久狠狠 | 亚洲色大成网站www永久一区| 中文字幕不卡免费高清视频| 亚洲精品二区国产综合野狼| 午夜影院免费观看| 亚洲性一级理论片在线观看| 全免费a级毛片免费**视频| 国产成人高清亚洲一区91| 亚洲午夜久久久久久噜噜噜| 污污网站18禁在线永久免费观看| 亚洲国产日韩女人aaaaaa毛片在线| 免费无码一区二区三区蜜桃大 | 亚洲码在线中文在线观看| 国产成人A在线观看视频免费| 久久精品熟女亚洲av麻豆| 亚洲国产精品人久久| 国产午夜无码视频免费网站| 久久综合九九亚洲一区| 久久亚洲精品国产亚洲老地址| 成人免费午夜视频| 成年女人A毛片免费视频| 亚洲欧洲精品一区二区三区| 国产精品成人四虎免费视频| 无码av免费一区二区三区| 亚洲午夜电影在线观看|