一.队列的概念与与特性
1.1 队列的概念
队列是一种特殊的线性表,仅仅可以再线性表的两端进行操作,为队头队尾
- 队头(front):取出的数据的一端
- 队尾(rear):插入数据的一端
1.2 队列的特性
队列的特性先进先出,类似于生活中的排队
二.队列的实现要点
2.1 队列的顶层父类实现
Queue.h
1 | c复制代码#ifndef QUEUE_H |
2.2 队列的继承关系
队列分为静态队列和链式队列,继承顶层父类即可
2.3 静态队列的实现要点
- 使用原生数组作为队列的存储空间
- 使用模板参数作为队列的最大容量
- front是队头标识
- rear表示队尾标识
三.静态队列的接口实现
3.1 初始化
1 | c复制代码staticQueue() |
3.2 入队列
先判断队列长度是否大于容量,没有则在队尾标识的位置出插入元素,队尾标识往后移一位
1 | c复制代码void add(const T& e) |
3.3 出队列
先判断队列是否有元素,如果有,那么直接将队头m_front指向的元素加1,表示队头元素被移出队列
1 | c复制代码void remove() |
3.4 获取队头元素
1 | c复制代码T front() const |
3.5 清空操作/队列长度
1 | c复制代码void clear() |
3.6 队满
表示长度为N,由于是循环计数所以还需要加上队头与队尾相等
1 | c复制代码bool full() |
3.7 队空
1 | c复制代码bool empty() |
四.完整代码
Queue.h
1 | c复制代码#pragma once |
staticQueue.h
1 | c复制代码#pragma once |
测试代码
staticQueue.cpp
1 | c复制代码#include <iostream> |
结果:
本文转载自: 掘金