#pragma once
//Queue.h
#ifndef QUEUE_H
#define QUEUE_H
#include<assert.h>
//类模板的定义
template<class T,int SIZE=50>
class Queue {
private:
int front, rear, count;//队头指针,队尾指针,元素个数
T list[SIZE];//队列元素数组
public:
Queue();//构造函数,初始化队头指针,队尾指针,元素个数
void insert(const T& item);//新元素入队
T remove();//元素出队
void clear();//清空队列
const T getFront()const;//访问队首元素
//测试队列状态
int getLength()const;//求队列长度
bool isEmpty()const;//判断队列是否为空
bool isFull()const;//判断队列是否为满
};
#endif // !QUEUE_H
//类模板实现
//构造函数
template<class T, int SIZE>
Queue<T, SIZE>::Queue():front(0),rear(0),count(0){}
template<class T,int SIZE>
void Queue<T, SIZE>::insert(const T& item) {//向队尾插入元素item
assert(count != SIZE);
list[rear] = item;
rear = (rear + 1) % SIZE;//队尾指针+1,取余实现循环队列
}
template<class T,int SIZE>
T Queue<T, SIZE>::remove() {
assert(count != 0);
int temp
56.C++队列模版
最新推荐文章于 2024-09-03 15:43:28 发布