<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();

    }
    }
    主站蜘蛛池模板: 人人狠狠综合久久亚洲婷婷| 亚洲国产片在线观看| 亚洲人成精品久久久久| 亚洲国产成人精品久久 | 亚洲AV无码久久| 亚洲国产最大av| 中文字幕在线观看免费| 成人黄动漫画免费网站视频| 亚洲无线码在线一区观看| aa在线免费观看| 免费一级黄色毛片| 亚洲一级高清在线中文字幕| 国产乱妇高清无乱码免费| 超清首页国产亚洲丝袜| 精品女同一区二区三区免费播放 | 国产亚洲精品观看91在线| 亚洲高清国产拍精品熟女| 114级毛片免费观看| 国产亚洲成人在线播放va| a级毛片无码免费真人久久| 亚洲电影日韩精品| 亚洲国产精品日韩av不卡在线| 日韩精品免费一区二区三区| 国产日本亚洲一区二区三区| 精品免费国产一区二区| 国产精品亚洲自在线播放页码| 日韩高清在线免费看| 亚洲精品视频免费 | 精品国产免费观看久久久 | 亚洲精品永久www忘忧草| 久别的草原电视剧免费观看| 中文字幕不卡亚洲| 亚洲天堂免费在线视频| 亚洲今日精彩视频| 无码人妻一区二区三区免费看| 不卡一卡二卡三亚洲| 麻豆高清免费国产一区| 日韩国产欧美亚洲v片| 国产精品免费视频网站| 国产精品亚洲二区在线| 亚洲中文久久精品无码|