zoukankan      html  css  js  c++  java
  • 【数据结构与算法之美】5.基于链表实现队列

    package com.ncst.queue;
    
    /**
     * @author i
     * @create 2019/12/20 16:10
     * @Description 基于链表实现队列
     */
    public class QueueBaseOnLikedList {
        private Node head;//头结点
        private Node tail;//尾结点
    
        //入队
        public void requeue(String value){
            //如果head节点为空 说明 没有数据
            if (head == null){
                head = new Node(value,null);
                tail = head;
                return;
            }
            //新结点指向tail节点的next节点  然后在将tail移动(赋值)到最后一个新结点上
            tail.next = new Node(value,null);
            tail = tail.next;
        }
    
        //出队
        public String dequeue(){
            //如果队列为空
            if (head == null){
                return null;
            }
    
            String value = head.data;
            head = head.next;
            return value;
        }
    
        //打印所有数据
        public void printfAll(){
            if (head == null){
                throw new NullPointerException("queue is empty!");
            }
            Node cur = head;
            while (cur!=null){
                System.out.print(cur.data+"	");
                cur = cur.next;
            }
        }
    
        public static void main(String[] args) {
            QueueBaseOnLikedList queue = new QueueBaseOnLikedList();
            queue.requeue("1");
            queue.requeue("2");
            queue.requeue("3");
            queue.requeue("4");
            queue.requeue("5");
    
            queue.printfAll();
            //queue.printfAll();
            System.out.println(queue.dequeue());
            System.out.println(queue.dequeue());
        }
    
    
        private static class Node{
            private String data;//存储数据
            private Node next;//下一个结点
    
            public Node(String data, Node next) {
                this.data = data;
                this.next = next;
            }
    
            public Node getNext() {
                return next;
            }
        }
    
    }
    
  • 相关阅读:
    AngularJS各种'service'的区别
    js 斐波那契数列实现
    Mac下Apache+MySQL+PHP开发环境安装过程
    原生封装的js前端工具库(包含了jquery的常用功能)
    BFC 神奇背后的原理
    CSS清浮动处理(Clear与BFC)
    JavaScript实现 页面滚动图片加载(懒加载)
    CodeForce 814B
    排序算法
    uva1610
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860746.html
Copyright © 2011-2022 走看看