Queue c++实现
来源:互联网 发布:rrelieff算法 编辑:程序博客网 时间:2024/05/17 21:54
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
template <class Type> class Queue;
template <class Type> class QueueItem
{
public:
friend class Queue<Type>;
QueueItem(const Type &t):item(t),next(0){}
Type item;
QueueItem *next;
};
template <class Type> class Queue
{
public:
QueueItem<Type> *head;
QueueItem<Type> *tail;
void destory();
void copy_elems(const Queue &);
Queue():head(0),tail(0){}
Queue(const Queue &Q):head(0),tail(0)
{
copy_elems(Q);
}
Queue & operator = (const Queue &);
~Queue()
{
destory();
}
Type &front()
{
return head->item;
}
const Type &front ()const
{
return head->item;
}
void push(const Type &);
void pop();
bool empty() const
{
return head==0;
}
};
template <class Type>
void Queue<Type>::destory()
{
while (!empty())
pop();
}
template <class Type>
void Queue<Type>::pop()
{
QueueItem<Type> *p=head;
cout << p->item<<endl;
head =head->next;
delete p;
}
template <class Type>
void Queue<Type>::push(const Type &val)
{
QueueItem<Type> *pt =new QueueItem<Type>(val);
if( empty()){
head =tail =pt;
cout << tail->item<<endl;
}
else
{
cout << pt->item<<endl;
tail->next = pt;
tail =pt;
}
}
template <class Type>
void Queue<Type>::copy_elems(const Queue &orig)
{
for( QueueItem<Type> *pt =orig.head; pt; pt=pt->next)
push(pt->item);
}
template <class Type>
Queue<Type> & Queue<Type>::operator = (const Queue &orig)
{
Queue<Type> *queue=new Queue<Type>;
for( QueueItem<Type> *pt =orig.head; pt; pt=pt->next)
queue.push(pt->item);
return *queue;
}
//main.cpp
using namespace std;
int main()
{
int a[5]={2,43,1,4,6};
Queue<int> fq;
for (int i=0;i<5;i++){
fq.push(a[i]);
}
//fq.pop();
return 0;
}
- QUEUE C语言实现
- C实现消息队列Queue
- queue 的C语言实现
- Binomial Queue C语言实现
- 队列(Queue) C 语言实现
- C语言实现队列Queue
- C++primer 实现queue的模板类
- 队列(Queue ADT)C语言实现
- [C++]queue简单实现--关于模板
- 队列(Queue)的C语言实现
- C语言队列QUEUE简单实现
- queue.c
- queue.c
- c-queue?
- Queue-实现
- Queue实现
- Queue实现
- Queue实现
- Java手机软件图形界面API之Form相关API(转)
- 五子棋的核心算法(转)
- <<飞 鸟 集>> 泰戈尔
- 使用DataGridView更新数据库
- 在DataGridView中获得DataGridViewCheckBoxColumn的状态
- Queue c++实现
- c#的坎坷旅途
- 何为爱情?
- 无聊 经济学
- BBS的初稿模型
- 使用 MMAnalyzer 发现内存不足 (out of memory java heap)解决方法
- 修改oracle数据库字符集的方法
- Cookie注入是怎样产生的
- 第一个跑马灯程序