美文网首页
数组队列实现以及其出队问题

数组队列实现以及其出队问题

作者: sunlang | 来源:发表于2018-10-28 13:27 被阅读1次

基于动态数组的实现

队列实现.png
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);
            }
        }
    }
}

用数组实现的队列,出队的时间复杂度是O(n),我们用循环队列解决

相关文章

  • 数组队列实现以及其出队问题

    基于动态数组的实现 用数组实现的队列,出队的时间复杂度是O(n),我们用循环队列解决

  • 关于队列的基础知识

    一、队列的特点 先进先出:从队尾进、队头出。 二、队列的实现 2.1 基于数组实现顺序队列(泛型) 维护队头指针h...

  • 第五讲-队列

    队列:先进先出 基本操作:出队(enqueue)or入队(dequeue) 顺序队列和链式队列 用数组实现的队列叫...

  • 数组实现队列之循环队列

    对于链表实现方式,队列的入队、出队操作和栈是大同小异的。但对于数组实现方式来说,因为数组的长度固定,队列的入队和出...

  • 数组实现queue

    队列最大的特点就是先进先出,主要的两个操作是入队和出队。用数组实现的叫顺序队列,用链表实现的叫链式队列。在数组实现...

  • 队列

    队列的结构 队列是一种“先进先出,后进后出”的结构, 队列既可以用数组实现,也可以用链表实现,用数组实现的叫顺序队...

  • 数组实现队列

    为了能更快速,更准确的写出一个队列,提炼出用数组实现队列的几个要素: 1.初始化 1.1队列数组长度 一般用宏的方...

  • 队列的几种实现方式

    1. 顺序队列 用数组实现的队列叫做顺序队列: 出队时间复杂度为 O(1),但是入队的时间复杂度稍微复杂一点: 入...

  • 实现队列_数组队列_1

    基于动态数组实现队列接口 实现类及测试 基于数组实现的队列,在出队的时候,时间复杂度为O(n),我们希望是O(1)...

  • 循环队列

    顺序存储实现循环队列 使用数组模拟环形结构,数组大小为MAXQSIZE front表示队头元素 rear表示队尾元...

网友评论

      本文标题:数组队列实现以及其出队问题

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