队列的数组实现_JAVA描述《数据结构与算法分析》

简介:
package DataStructures;

public  class QueueArray  {
    static final int DEFAULT_CAPACITY = 10;

    private Object[] theArray;

    private int currentSize;

    private int front;

    private int back;

    /**
     * Construct the queue.
     * 
     
*/

    public QueueArray() {
        this(DEFAULT_CAPACITY);
    }


    /**
     * Construct the queue.
     * 
     * 
@param capacity
     
*/

    public QueueArray(int capacity) {
        theArray = new Object[capacity];
        MakeEmpty();
    }


    /**
     * Make the queue logically empty.
     * 
     
*/

    public void MakeEmpty() {
        currentSize = 0;
        front = 0;
        back = -1;
    }


    public boolean IsEmpty() {
        return currentSize == 0;
    }


    public boolean IsFull() {
        return currentSize == theArray.length;
    }


    /**
     * Get the least recently inserted item in the queue. Does not alter the
     * queue.
     * 
     * 
@return the least recently inserted item in the queue, or null, if empty.
     
*/

    public Object getFront() {
        if (IsEmpty())
            return null;
        return theArray[front];
    }


    /**
     * Insert a new item into the queue.
     * 
     * 
@param x
     *            the item to insert.
     * 
@throws Overflow
     *             if queue is full.
     
*/

    public void Enqueue(Object x) throws Overflow {
        if (IsFull())
            throw new Overflow();
        back = increment(back);
        theArray[back] = x;
        currentSize++;
    }


    /**
     * Internal method to increment with wraparound.
     * 
     * 
@param x
     *            any index in theArray`s range.
     * 
@return x+1,or 0,if x is at the end of theArray;
     
*/

    private int increment(int x) {
        if (++x == theArray.length)
            x = 0;
        return x;
    }


    /**
     * Return and remove the least recently inserted item from the queue.
     * 
     * 
@return the least recently inserted item, or null, if empty.
     
*/

    public Object Dequeue() {
        if (IsEmpty())
            return null;
        currentSize--;

        Object frontItem = theArray[front];
        theArray[front] = null;
        front = increment(front);
        return frontItem;
    }

}

本文转自冬冬博客园博客,原文链接:http://www.cnblogs.com/yuandong/archive/2006/09/11/500814.html ,如需转载请自行联系原作者
相关文章
|
9天前
|
Java
Java 数组学习笔记
本文整理Java数组常用操作:遍历、求和、查找、最值及二维数组行求和等典型练习,涵盖静态初始化、元素翻倍、去极值求平均等实例,帮助掌握数组基础与应用。
|
1月前
|
存储 缓存 Java
Java数组全解析:一维、多维与内存模型
本文深入解析Java数组的内存布局与操作技巧,涵盖一维及多维数组的声明、初始化、内存模型,以及数组常见陷阱和性能优化。通过图文结合的方式帮助开发者彻底理解数组本质,并提供Arrays工具类的实用方法与面试高频问题解析,助你掌握数组核心知识,避免常见错误。
|
2月前
|
存储 Java 索引
java 数组
在 Java 中,数组是一种数据结构,用于存储多个相同类型的数据元素。数组的大小一旦创建后就不能改变,因此它是固定长度的。Java 数组是一种 对象,即使它存储的值是基本类型(如 int、double 等),它也是一个对象引用。
55 0
|
2月前
|
存储 监控 算法
企业上网监控场景下布隆过滤器的 Java 算法构建及其性能优化研究
布隆过滤器是一种高效的数据结构,广泛应用于企业上网监控系统中,用于快速判断员工访问的网址是否为违规站点。相比传统哈希表,它具有更低的内存占用和更快的查询速度,支持实时拦截、动态更新和资源压缩,有效提升系统性能并降低成本。
65 0
|
2月前
|
存储 负载均衡 算法
我们来说一说 Java 的一致性 Hash 算法
我是小假 期待与你的下一次相遇 ~
100 1
|
3月前
|
存储 算法 安全
Java中的对称加密算法的原理与实现
本文详细解析了Java中三种常用对称加密算法(AES、DES、3DES)的实现原理及应用。对称加密使用相同密钥进行加解密,适合数据安全传输与存储。AES作为现代标准,支持128/192/256位密钥,安全性高;DES采用56位密钥,现已不够安全;3DES通过三重加密增强安全性,但性能较低。文章提供了各算法的具体Java代码示例,便于快速上手实现加密解密操作,帮助用户根据需求选择合适的加密方案保护数据安全。
336 58
|
4月前
|
人工智能 算法 NoSQL
LRU算法的Java实现
LRU(Least Recently Used)算法用于淘汰最近最少使用的数据,常应用于内存管理策略中。在Redis中,通过`maxmemory-policy`配置实现不同淘汰策略,如`allkeys-lru`和`volatile-lru`等,采用采样方式近似LRU以优化性能。Java中可通过`LinkedHashMap`轻松实现LRUCache,利用其`accessOrder`特性和`removeEldestEntry`方法完成缓存淘汰逻辑,代码简洁高效。
188 0
|
4月前
|
存储 人工智能 Java
打乱数组内容引发的问题( Java)
本文介绍了两种实现数组随机打乱的方法,并深入探讨了Java中原始数据类型与对象类型的差异。方法一通过自定义随机数交换数组元素位置,方法二借助`Collections.shuffle()`函数完成数组打乱。同时,文章详细解析了`int`和`Integer`的区别,包括声明方式、内存占用、初始化以及对象特性等,并讲解了自动装箱与拆箱的功能,帮助读者更好地理解Java的基础知识。
|
4月前
|
存储 缓存 监控
上网行为监控系统剖析:基于 Java LinkedHashMap 算法的时间序列追踪机制探究
数字化办公蓬勃发展的背景下,上网行为监控系统已成为企业维护信息安全、提升工作效能的关键手段。该系统需实时记录并深入分析员工的网络访问行为,如何高效存储和管理这些处于动态变化中的数据,便成为亟待解决的核心问题。Java 语言中的LinkedHashMap数据结构,凭借其独有的有序性特征以及可灵活配置的淘汰策略,为上网行为监控系统提供了一种兼顾性能与功能需求的数据管理方案。本文将对LinkedHashMap在上网行为监控系统中的应用原理、实现路径及其应用价值展开深入探究。
103 3

热门文章

最新文章