美文网首页
实现队列_数组队列_1

实现队列_数组队列_1

作者: 苏州城外无故人 | 来源:发表于2019-04-15 19:14 被阅读0次

基于动态数组实现队列
接口

package com.company.queue;

public interface Queue<E> {

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

实现类及测试

package com.company.queue;

import com.company.Array;

/**
 * @program: Array
 * @description: 数组实现队列,先进先出策略
 * @author: Gu
 * @create: 2019-04-14 21:23
 **/

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

    private Array<E> array;

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

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

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

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

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

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

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

    @Override
    public String toString() {
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append(String.format("ArrayQueue的size: %d, capacity : %d \n",getSize(), array.length()));
        stringBuffer.append("front [");
        for (int i = 0; i < getSize(); i++) {
            stringBuffer.append(array.get(i));
            if (i == getSize() - 1) {
                stringBuffer.append("] end");
                break;
            }
            stringBuffer.append(",");
        }
        return stringBuffer.toString();
    }

    public static void main(String[] args) {
        ArrayQueue<Integer> arrayQueue = new ArrayQueue();
        for (int i = 0; i < 10; i++) {
            arrayQueue.enqueue(i);
        }
        System.out.println(arrayQueue);
        System.out.println(arrayQueue.dequeue());
        System.out.println(arrayQueue.getFront());
        System.out.println(arrayQueue);
    }
}

基于数组实现的队列,在出队的时候,时间复杂度为O(n),我们希望是O(1),从而引入第二部分,循环队列。

相关文章

  • 1.数组队列

    数组实现单队列 数组实现循环队列

  • (二) python实现数据结构之队列(queue)篇

    一.队列类型介绍 python代码实现 (1).数组的方式实现队列 (2).链表的方式实现队列

  • 数据结构——栈和队列

    用数组实现栈和队列 用栈实现队列 用队列实现栈 栈和队列的经典算法题最小间距栈宠物收养所 数组实现栈和队列 用数组...

  • Java数组实现循环队列

    Java数组实现循环队列 上一节(Java实现队列——顺序队列、链式队列)我们使用数组实现了顺序队列,但是在tai...

  • 数据结构

    稀疏数组 代码实现: 队列 代码实现: 环形队列 什么时候队列满:(rear+1)%maxsize == fron...

  • 有关“队列”的总结

    队列 定义 分类 链式队列 (用链表实现) 静态队列 (用数组实现)图静态队列通常都必须是循环队列循环队列的讲解:...

  • [算法题] 使用数组实现栈和队列

    1. 使用数组实现栈 2. 使用数组实现队列

  • 数据结构——队列

    目录 1、什么是队列 2、队列的实现 2.1、基于简单循环数组的实现 2.1.1、为什么需要循环数组 2.1.2、...

  • 队列

    2018年10月31日 队列是一种先进先出(FIFO)的数据结构 1,队列的链表实现 2,队列的数组实现 3,队列...

  • 数据结构之队列

    什么是队列 队列是一个有序列表, 可以用数组或链表实现 先入先出 使用数组模拟队列和环形队列 用数组模拟队列 思路...

网友评论

      本文标题:实现队列_数组队列_1

      本文链接:https://www.haomeiwen.com/subject/geppwqtx.html