<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 為自己代言 閱讀(388) 評論(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性色在线观无码| 免费精品人在线二线三线区别| 成人特级毛片69免费观看| 西西人体44rt高清亚洲| 免费国产在线观看老王影院| 99爱在线观看免费完整版| 高清永久免费观看| 美女免费视频一区二区| 亚洲性线免费观看视频成熟| 亚洲Aⅴ无码专区在线观看q| 亚洲国产精品一区二区第一页| 亚洲国产综合久久天堂| 免费国产精品视频| 免费永久在线观看黄网站| 免费爱爱的视频太爽了| 国产免费爽爽视频免费可以看| 免费精品国产日韩热久久| 国色精品卡一卡2卡3卡4卡免费| 久久免费观看国产精品| 国产精品玖玖美女张开腿让男人桶爽免费看| 亚洲中文字幕无码av永久| 亚洲www在线观看| 美女18一级毛片免费看| 疯狂做受xxxx高潮视频免费| 4hu四虎免费影院www| 国产精品青草视频免费播放| 两个人看的www免费| 日韩免费无码一区二区三区| 中文字幕av无码无卡免费| 日本不卡在线观看免费v| 国产日产亚洲系列最新| 亚洲产国偷V产偷V自拍色戒| 亚洲日韩在线视频| 国产精品亚洲综合五月天| 好看的亚洲黄色经典| 亚洲AV无一区二区三区久久| 亚洲中文无码线在线观看| 亚洲av无码偷拍在线观看|