美文网首页
自己动手写数据结构之普通队列

自己动手写数据结构之普通队列

作者: 逍遥白亦 | 来源:发表于2020-12-16 23:37 被阅读0次

普通队列的实现

1 定义

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

类似于我们在星巴克排队买咖啡,先来先买。

2 基本操作和元素

入队

出队

队头

队尾

实现一个队列

public class NormalQueue<E> {

    private E[] queueArray;

    private int head;

    private int tail;

    private int maxSize;

    private int length;

    @SuppressWarnings("unchecked")
    public NormalQueue(int maxSize) {
        this.queueArray = (E []) new Object[maxSize];
        this.head = 0;
        this.tail = -1;
        this.maxSize = maxSize;
        this.length = 0;
    }

    boolean enQueue(E data) throws Exception {
        if (isFull()){
            throw new Exception("The Queue is Full");
        }

        queueArray[++tail] = data;

        length++;

        return true;

    }

    public E deQueue() throws Exception{
        if (isEmpty()){
            throw new Exception("The Queue is Empty");
        }

        E data = queueArray[head];

        length--;

        head++;

        return data;

    }

    public E peekHead(){
        return queueArray[head];
    }

    public E peekTail(){

        if (isEmpty()){
            return queueArray[head];
        }

        return queueArray[tail];
    }

    private boolean isEmpty(){
        return length == 0;
    }

    private boolean isFull(){
        return length == maxSize + 1;
    }


}

相关文章

  • 自己动手写数据结构之普通队列

    普通队列的实现 1 定义 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表...

  • 自己动手写数据结构之循环队列

    循环队列的实现 1 定义 为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称...

  • 数据结构(三)-- 优先队列

    什么是优先队列? 我们在前几篇文章中学习过了“队列”这种数据结构。那么优先队列和普通队列有什么区别的呢?普通队列的...

  • C++数据结构探险——队列篇

    数据结构的原理 队列:先进先出(FIFO:first in first out) 普通队列: 环形队列: 以C++...

  • 2018-08-01 js栈与队列补充

    栈与队列之js(ts)手写(补充)

  • JavaScript数据结构之队列

    接上篇-数据结构之栈 数据结构之---队列 1.队列的定义 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端...

  • C++中的优先队列

    优先队列(priority queue)普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优...

  • 优先队列(堆)

    优先队列 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当...

  • 二叉堆应用二:优先队列

    优先队列 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。删...

  • 优先队列--底层是二叉堆

    1.什么是优先队列?普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予...

网友评论

      本文标题:自己动手写数据结构之普通队列

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