设计一个名为Queue的类用于存储整数。在栈中,元素以“后进先出”的方式获取。在队列中,元素以“先进先出”方法获取。

简介: 设计一个名为Queue的类用于存储整数。在栈中,元素以“后进先出”的方式获取。在队列中,元素以“先进先出”方法获取。

一、设计一个名为Queue的类用于存储整数。在栈中,元素以“后进先出”的方式获取。在队列中,元素以“先进先出”方法获取。该类包含:

  • 一个名为element的int[]类型的数据域,保存队列中的int值
  • 一个名为size的数据域,保存队列中的元素个数
  • 一个构造方法,以默认容量为8来创建一个Queue对象
  • 方法enqueue(int v),用于将v加入队列中
  • 方法dequeue(),用于从队列中移除元素并返回该元素
  • 方法empty(),如果队列为空,该方法返回true;
  • 方法getSize(),返回队列的大小。
  • 初始数据的大小为8。一旦元素个数超过了数组大小,数组大小将会翻倍。如果一个元素从数组的开始部分移除,你需要将数组中的所有元素往左边移动一个位置。编写一个测试程序,添加从1到20的20个数字到队列中,然后将这些数字移除并显示它们。

以下代码仅供参考

以下代码仅供参考

以下代码仅供参考

/**
 *作者:魏宝航
 *2020年11月22日,下午15:31
 */
public class test {
    public static void main(String[] args) {
        Queue queue=new Queue();
        for(int i=1;i<=20;i++){
            queue.enqueue(i);
        }
        if(queue.empty()){
            System.out.println("队列为空");
        }
        else {
            System.out.println("队列不空");
        }
        for(int i=0;i<20;i++){
            System.out.print(queue.dequeue()+" ");
        }
        System.out.println();
        if(queue.empty()){
            System.out.println("队列为空");
        }
        else {
            System.out.println("队列不空");
        }
    }
}
class Queue{
    private int[] element;
    private int size;
    public Queue(){
        element=new int[8];
    }
    public void enqueue(int v){
        if(size==element.length){
            int[] temp=element;
            element=new int[2*element.length];
            for(int i=0;i<temp.length;i++){
                element[i]=temp[i];
            }
        }
        element[size]=v;
        size++;
    }
    public int dequeue(){
        int temp=element[0];
        for(int i=0;i<element.length-1;i++){
            element[i]=element[i+1];
        }
        size--;
        return temp;
    }
    public boolean empty(){
        if(size==0)
            return true;
        return false;
    }
    public int getSize(){
        return size;
    }
}


目录
相关文章
|
4天前
|
存储 Python
Python中使用列表和字典来存储和处理复杂的数据结构
Python中使用列表和字典来存储和处理复杂的数据结构
|
2天前
|
存储 算法 调度
算法与数据结构-栈篇
算法与数据结构-栈篇
11 0
|
3天前
|
存储 人工智能 程序员
技术心得记录:堆(heap)与栈(stack)的区别
技术心得记录:堆(heap)与栈(stack)的区别
|
4天前
|
存储 自然语言处理 NoSQL
深入解析Elasticsearch的内部数据结构和机制:行存储、列存储与倒排索引之倒排索引(三)
深入解析Elasticsearch的内部数据结构和机制:行存储、列存储与倒排索引之倒排索引(三)
|
4天前
|
存储 自然语言处理 NoSQL
深入解析Elasticsearch的内部数据结构和机制:行存储、列存储与倒排索引之列存(二)
深入解析Elasticsearch的内部数据结构和机制:行存储、列存储与倒排索引之列存(二)
|
4天前
|
存储 JSON NoSQL
深入解析Elasticsearch的内部数据结构和机制:行存储、列存储与倒排索引之行存(一)
深入解析Elasticsearch的内部数据结构和机制:行存储、列存储与倒排索引之行存(一)
|
4天前
|
存储 缓存 NoSQL
Redis为什么速度快:数据结构、存储及IO网络原理总结
Redis为什么速度快:数据结构、存储及IO网络原理总结
|
4天前
|
存储 算法 Java
Java数据结构与算法:用于高效地存储和检索字符串数据集
Java数据结构与算法:用于高效地存储和检索字符串数据集
|
5天前
【海贼王的数据航海】栈和队列
【海贼王的数据航海】栈和队列
5 0
|
5天前
|
算法 C语言
【数据结构与算法 经典例题】使用栈实现队列(图文详解)
【数据结构与算法 经典例题】使用栈实现队列(图文详解)