当前位置: 首页 > news >正文

数据结构:自定义数组队列

文中用的Array为自定义Array:跳转自定义Array类
Queue接口

public interface Queue<E> {

    int getSize();
    boolean isEmpty();
    void enqueue(E e);
    E dequeue();
    E getFront();
}

数组队列的实现

public class ArrayQueue<E> implements Queue<E> {

    private Array<E> array;

    public ArrayQueue(int capacity){
        array = new Array<>(capacity);
    }

    public ArrayQueue(){
        array = new Array<>();
    }

    @Override
    public int getSize(){
        return array.getSize();
    }

    @Override
    public boolean isEmpty(){
        return array.isEmpty();
    }

    public int getCapacity(){
        return array.getCapacity();
    }

    @Override
    public void enqueue(E e){
        array.addLast(e);
    }

    @Override
    public E dequeue(){
        return array.removeFirst();
    }

    @Override
    public E getFront(){
        return array.getFirst();
    }

    @Override
    public String toString(){
        StringBuilder res = new StringBuilder();
        res.append("Queue: ");
        res.append("front [");
        for(int i = 0 ; i < array.getSize() ; i ++){
            res.append(array.get(i));
            if(i != array.getSize() - 1)
                res.append(", ");
        }
        res.append("] tail");
        return res.toString();
    }

    public static void main(String[] args) {

        ArrayQueue<Integer> queue = new ArrayQueue<>();
        for(int i = 0 ; i < 10 ; i ++){
            queue.enqueue(i);
            System.out.println(queue);
            if(i % 3 == 2){
                queue.dequeue();
                System.out.println(queue);
            }
        }
    }
}

转载于:https://www.cnblogs.com/drl-blogs/p/10797966.html

相关文章:

  • 异或的性质及运用
  • 20175215 2018-2019-2 第八周java课程学习总结
  • 我的java问题排查工具单
  • 记录一个pom文件
  • 2.4 hive创建表实例讲解
  • Cookie Session和自定义分页
  • SSM框架的优势?
  • 获得小黄衫有感
  • Hello2 Analysis
  • exe4j 使用记录(二):jar打包exe
  • ModBus-RTU详解
  • 冲刺进度条-2
  • Solr中的group与facet的区别
  • hashlib 模块:加密
  • 团队博客
  • SegmentFault for Android 3.0 发布
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • co模块的前端实现
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • github指令
  • javascript面向对象之创建对象
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Spring Cloud中负载均衡器概览
  • 基于webpack 的 vue 多页架构
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 一起参Ember.js讨论、问答社区。
  • 一文看透浏览器架构
  • 说说我为什么看好Spring Cloud Alibaba
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • #NOIP 2014# day.1 T2 联合权值
  • #QT(智能家居界面-界面切换)
  • #微信小程序:微信小程序常见的配置传旨
  • (1)STL算法之遍历容器
  • (2)STM32单片机上位机
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (十一)手动添加用户和文件的特殊权限
  • (算法)N皇后问题
  • (五)网络优化与超参数选择--九五小庞
  • (新)网络工程师考点串讲与真题详解
  • (一)appium-desktop定位元素原理
  • (转)IOS中获取各种文件的目录路径的方法
  • *上位机的定义
  • .Net 4.0并行库实用性演练
  • .NET Core 版本不支持的问题
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET Project Open Day(2011.11.13)
  • .NET Reactor简单使用教程
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET的微型Web框架 Nancy
  • .Net语言中的StringBuilder:入门到精通
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • [ActionScript][AS3]小小笔记