c++实现数据结构八 链式队列
2013-04-23 21:35
495 查看
QueueNode.h
LinkQueue.h
template<typename Type> class LinkQueue; template<typename Type> class QueueNode { private: friend class LinkQueue<Type>; QueueNode(Type item, QueueNode<Type> *next = NULL): data(item), pnext(next){} private: Type data; QueueNode<Type> *pnext; };
LinkQueue.h
#include "QueueNode.h" template<typename Type> class LinkQueue { public: LinkQueue():pfront(NULL),prear(NULL) {} ~LinkQueue() { MakeEmpty(); } public: void Append(const Type item); Type Delete(); Type GetFront(); void MakeEmpty(); void Print(); bool IsEmpty() const { return pfront == NULL; } private: QueueNode<Type> *prear, *pfront; }; template<typename Type> void LinkQueue<Type>::Append(const Type item) { QueueNode<Type> *p= new QueueNode<Type>(item); //空的队列 if(pfront == NULL) { pfront = prear = p; } else { prear = prear->pnext = p; } } template<typename Type> Type LinkQueue<Type>::Delete() { if( IsEmpty() ) { cout<<"the queue is empty"<<endl; exit(1); } QueueNode<Type> *pdel = pfront; pfront= pfront->pnext; Type item = pdel->data; delete pdel; return item; } template<typename Type> Type LinkQueue<Type>::GetFront() { if( IsEmpty() ) { cout<<"the queue is empty"<<endl; exit(1); } return pfront->data; } template<typename Type> void LinkQueue<Type>::MakeEmpty() { QueueNode<Type> *pdel; while(pfront) { pdel = pfront; pfront = pfront->pnext; delete pdel; pdel=NULL; } } template<typename Type> void LinkQueue<Type>::Print() { cout<<"front"; QueueNode<Type> *pmov =pfront; while(pmov) { cout<<"-->"<<pmov->data; pmov = pmov->pnext; } cout<<"-->rear"<<endl; }
相关文章推荐
- 数据结构学习之队列的链式存储的C++实现
- 数据结构队列C++实现 链式和循环
- 数据结构队列C++实现 链式和循环
- 数据结构之C++实现链式队列(LinkQueue)(无主函数)
- 链式队列的C++实现
- 数据结构的C实现_链式队列
- 数据结构---C语言之队列的链式表示和实现(链队列)
- 数据结构学习---队列的链式储存实现
- 队列-链式结构-C++实现
- 【c++版数据结构】链队列的实现
- 队列的链式表示和实现(数据结构)
- [数据结构]C++队列实现和队列简介
- c/c++实现顺序循环队列和链式队列
- (C语言)队列的链式实现(数据结构十一)
- C++——数据结构之 顺序队列 链式队列?
- 【数据结构】实现大小堆也叫二叉堆(类似c++中的优先队列)
- 数据结构(7) 链队列 c++ 模板实现
- 数据结构-队列:循环队列与链队列的C++模板类实现
- 数据结构之队列的链式表示和实现
- 数据结构实现链式队列(C语言)