队列(ArrayQueue)
- 队列是一种 先进先出(First In First Out,FILO) 的种线性数据结构 。
代码是在动态数组二次封装,先阅读底层实现体验更佳 Array.h 点它
代码清单
#ifndef C___ARRAYQUEUE_H
#define C___ARRAYQUEUE_H
#include "Array.h"
template<typename T>
class ArrayQueue{
public:
ArrayQueue();
ArrayQueue(const int capacity);
int getSize()const;
int getCapacity()const;
bool isEmpty()const;
void enqueue(const T&t);
T dequeue();
T getFront();
void print()const;
~ArrayQueue();
private:
Array<T>*arr;
};
template<typename T>
ArrayQueue<T>::ArrayQueue() {
arr = new Array<T>();
}
template<typename T>
ArrayQueue<T>::ArrayQueue(const int capacity) {
arr = new Array<T>(capacity);
}
template<typename T>
int ArrayQueue<T>::getSize()const {
return arr->getSize();
}
template<typename T>
int ArrayQueue<T>::getCapacity()const{
return arr->getCapacity();
}
template<typename T>
bool ArrayQueue<T>::isEmpty()const {
return arr->isEmpty();
}
template<typename T>
void ArrayQueue<T>::enqueue(const T &t) {
arr->addLast(t);
}
template<typename T>
T ArrayQueue<T>::dequeue() {
return arr->removeFirst();
}
template<typename T>
T ArrayQueue<T>::getFront() {
return arr->getFirst();
}
template<typename T>
void ArrayQueue<T>::print() const {
std::cout << "ArrayQueue: size = " << arr->getSize() << ", capacity = " << arr->getCapacity() << std::endl;
std::cout << "bottom ";
arr->print();
}
template<typename T>
ArrayQueue<T>::~ArrayQueue() {
delete arr;
arr = nullptr;
}
#endif //C___ARRAYQUEUE_H
main.cpp
int main()
{
ArrayQueue<int>*aq = new ArrayQueue<int>();
for(int i = 0;i<10;++i)
{
aq->enqueue(i);
}
aq->print();
cout<<endl;
cout<<"aq->isEmpty()"<<aq->isEmpty()<<endl;
cout<<endl;
cout<<"aq->getCapacity"<<aq->getCapacity()<<endl;
cout<<endl;
cout<<"aq->getSize()"<<aq->getSize()<<endl;
cout<<endl;
cout<<"aq->dequeue()"<<aq->dequeue()<<endl;
cout<<endl;
cout<<"aq->getFront()"<<aq->getFront()<<endl;
cout<<endl;
aq->print();
return 0;
}
复杂度分析

队列(ArrayQueue)的更多相关文章
- java——数组队列 ArrayQueue
队列: Array: package Date_pacage; public class Array<E> { //叫它静态数组 //private int[] data; private ...
- 图解Java数据结构之队列
本篇文章,将对队列进行一个深入的解析. 使用场景 队列在日常生活中十分常见,例如:银行排队办理业务.食堂排队打饭等等,这些都是队列的应用.那么队列有什么特点呢? 我们知道排队的原则就是先来后到,排在前 ...
- 用OC基于数组实现循环队列
一.简言 使用数组实现循环队列时,始终会有一个空余的位置预留着,作为一个判决队列已满的条件(当然也可以采用其他方式).在前面已经用C++介绍了基本的算法,可以去回顾一下https://www.cnbl ...
- 数据结构之队列(queue)
队列介绍 1.队列是一个有序列表,可以用数组或是链表来实现. 2.遵循先入先出的原则.即:先存入队列的数据,要先取出.后存入的要后取出. 应用场景 比如某某银行叫号系统: 数组模拟队列 队列本身是有序 ...
- java算法--普通队列
数据结构队列 首先明确一下队列的概念. 队列是一种有序列表,使用数组的结构来存储队列的数据. 队列是一种先进先出的算法.由前端加入,由后端输出. 如下图: 第一个图 第二个图 第三个图 这就是队列 ...
- 数据结构和算法(Golang实现)(14)常见数据结构-栈和队列
栈和队列 一.栈 Stack 和队列 Queue 我们日常生活中,都需要将物品排列,或者安排事情的先后顺序.更通俗地讲,我们买东西时,人太多的情况下,我们要排队,排队也有先后顺序,有些人早了点来,排完 ...
- 【数据结构与算法】——队列(Queue)
队列(Queue)的一个使用场景 银行排队的案例: 队列(Queue)介绍 队列是一个有序列表,可以用数组或是链表来实现. 遵循先入先出的原则.即:先存入队列的数据,要先取出来.后存入的要后取出来. ...
- HTTP2 学习
一.HTTP1.x存在的问题 Http1.0时Connection无法复用,同一时间一个Connection只能处理一个request.Http1.1引入了Request pipelining来解决这 ...
- Java 内功修炼 之 数据结构与算法(一)
一.基本认识 1.数据结构与算法的关系? (1)数据结构(data structure): 数据结构指的是 数据与数据 之间的结构关系.比如:数组.队列.哈希.树 等结构. (2)算法: 算法指的是 ...
- 算法入门 - 链表的实现及应用(Java版本)
之前我们学习了动态数组,虽然比原始数组的功能强大了不少,但还不是完全纯动态的(基于静态数组实现的).这回要讲的链表则是正儿八经的动态结构,是一种非常灵活的数据结构. 链表的基本结构 链表由一系列单一的 ...
随机推荐
- win32 - GDI+ 高斯模糊的使用
虽然标题中标有GDI+,但其实真正实施的时候并没有用到. 不过GDI+的相关文档有一些关于高斯模糊的api说明,见下面链接: Blur class (gdipluseffects.h) 使用Bl ...
- 一次nginx返回422状态码的经历
故事背景 后端使用Docker Compose部署一个代码片段管理应用:snibox,某天因为云服务卡死重启之后再次访问时,登录或退出都返回422状态码. 界面提示如下: 不过奇怪的是:直接通过IP+ ...
- 麒麟系统开发笔记(四):从Qt源码编译安装之编译安装QtCreator4.8.1,并配置编译测试Demo
前言 本篇紧接上一篇,上一篇已经从Qt源码编译了Qt,那么Qt开发的IDE为QtCreator,本篇从源码编译安装QtCreator,并配置好构建套件,运行Demo并测试. QtCreator ...
- 如何在矩池云上安装语音识别模型 Whisper
如何在矩池云上安装语音识别模型 Whisper Whisper 是 OpenAI 近期开源的一个语音识别的模型,研究人员基于 680,000 小时的标记音频数据进行训练,它同时也是一个多任务模型,可以 ...
- Ubuntu中安装使用QEMU/KVM/virt-manager运行虚拟机
本文为原创,原文发布于个人博客网站:Ubuntu中安装使用QEMU/KVM/virt-manager运行虚拟机 有时候我们需要在同一台计算机中使用多种不同操作系统环境,基于已有的同一堆硬件资源来获得不 ...
- [Python] 通过md5去重 筛选文件代码
这是一些代码记录 这次是帮朋友恢复硬盘,扫描到的结果包含了好多个分区,通过将分区中的数据导出发现很多文件是重复的.所以想到通过python代码去重. 首先把所有分区的图片文件都放到一个文件夹A中,如果 ...
- Java 常用类 String的常用方法(3)
1 /** 2 * String常用方法3 3 * 替换: 4 * String replace(char oldChar,char newChar): 返回一个新的字符串,它是通过 5 * 用new ...
- nginx 代理 sftp转发流量
首先需要nginx安装有 stream模块,使用 nginx -V 查看下是否有 --with-stream,没有使用命令: yum -y install nginx-all-modules.noar ...
- CSV转Excel,命中关键词标红
CSV转Excel,命中关键词标红 package com.wenwo.schedule.job.mainJob; import java.io.ByteArrayOutputStream; impo ...
- 《Relation of the Relations A New Paradigm of the Relation Extraction Problem》论文阅读笔记
原文 代码 摘要 为了解决传统的关系抽取(RE)方法只能识别两个实体之间的关系,而忽略了同一上下文中多个关系之间的相互依赖性,即关系的关系(relation of relations,RoR)的问题, ...