给出队列的实现类及其测试用例
#ifndef QUEUE_H
#define QUEUE_H
/*
*一个队列表示一个等待列表。队列可以看做是特殊类型的列表,元素只能插入到队尾,而访问元素和删除元素只能在队首进行
*/
#include "LinkedList.h"
#include <stdexcept>
using namespace std;
template<typename T>
class Queue{
public:
Queue();
void enqueue(T element);
T dequeue() throw (runtime_error);
int getSize();
private:
LinkedList<T> list;
};
template<typename T>
Queue<T>::Queue(){
}
template<typename T>
void Queue<T>::enqueue(T element){
list.addLast(element);
}
template<typename T>
T Queue<T>::dequeue() throw (runtime_error){
return list.removeFirst();
}
template<typename T>
int Queue<T>::getSize(){
return list.getSize();
}
#endif // QUEUE_H
#include<iostream>
#include "Queue.h"
#include<string>
using namespace std;
template<typename T>
void printQueue(Queue<T> &queue){
while(queue.getSize() > 0)
cout<<queue.dequeue()<<" ";
cout<<endl;
}
int main(){
// Queue of int values
Queue<int> intQueue;
for(int i = 0; i < 10; i++)
intQueue.enqueue(i);
printQueue(intQueue);
// Queue of strings
Queue<string> stringQueue;
stringQueue.enqueue("New York");
stringQueue.enqueue("Boston");
stringQueue.enqueue("Denver");
printQueue(stringQueue);
return 0;
}