首先要加入头文件slist.h
http://blog.csdn.net/qq_16192007/article/details/51504732
通过单链表实现队列
queue.h
#ifndef _QUEUE_H_INCLUDED
#define _QUEUE_H_INCLUDED
#include "slist.h"
template<typename T>
class Queue {
public:
Queue() : hb_slist() {}
~Queue() {}
bool empty() const { return hb_slist.empty(); }
void clear() { hb_slist.clear(); }
int size() const { return hb_slist.size(); }
void en_queue(const T& elem) { hb_slist.push_back(elem); }//加入队列
T de_queue() { return hb_slist.pop_front(); }//退出队列,先进先出。
T front() const { return hb_slist.value(1); }//查看头元素
T back() const { return hb_slist.value(hb_slist.size()); }//查看尾元素。
private:
Slist<T> hb_slist;
};
#endif
test.cpp
// queue.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include "queue.h"
int main()
{
Queue<int> queue;
queue.en_queue(3);
queue.en_queue(6);
queue.en_queue(11);
queue.de_queue();
int num = queue.size();
for (int i = 0; i != num; ++i)
std::cout << queue.de_queue() << '-';
std::cout << std::endl;
return 0;
}