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

    }
    }
    主站蜘蛛池模板: 亚洲国产日韩a在线播放| 亚洲国产精品一区二区成人片国内| 亚洲视频2020| 野花香高清在线观看视频播放免费| 亚洲国产精品日韩| jizz免费观看| 亚洲欭美日韩颜射在线二| 精品熟女少妇aⅴ免费久久| gogo全球高清大胆亚洲| 香蕉视频免费在线| 亚洲成a人无码av波多野按摩| 黄网站在线播放视频免费观看 | 国产成人免费视频| 亚洲精品午夜无码电影网| 西西人体免费视频| 亚洲成AV人片在线观看| 99热这里只有精品免费播放| 亚洲一二成人精品区| xx视频在线永久免费观看| 亚洲中文字幕久久无码| 国产一级淫片a视频免费观看| 黄页网站在线观看免费| 在线A亚洲老鸭窝天堂| 久久国产乱子伦免费精品| 亚洲91精品麻豆国产系列在线 | 精品女同一区二区三区免费播放| 国产又粗又长又硬免费视频| 一级看片免费视频| 亚洲A∨无码一区二区三区| 一个人在线观看视频免费| 精品久久亚洲一级α| 亚洲色欲色欲www在线丝| 永久免费视频网站在线观看| 亚洲色大成网站www永久男同 | 亚洲人成伊人成综合网久久久| 91老湿机福利免费体验| 亚洲人av高清无码| 一本色道久久综合亚洲精品高清| 99久9在线|免费| 美女被艹免费视频| 久久久久亚洲AV无码麻豆|