典型数据结构--基于链表的队列实现
2013-10-10 14:17
525 查看
#include <iostream> using namespace std; template<typename T> struct Node{ T m_nData; Node* m_pNext; Node(T data); }; template<typename T> Node<T>::Node(T data): m_nData(data),m_pNext(NULL) {} template<typename T> class CQueue{ private: Node<T>* m_pFront; Node<T>* m_pRear; public: CQueue(); ~CQueue(); bool mIsEmpty() const; bool mIsFull() const; T mFirst() const; T mLast() const; CQueue<T>& mAdd(const T&); CQueue<T>& mDelete(); }; template<typename T> CQueue<T>::CQueue(){ m_pFront = m_pRear = NULL; } template<typename T> CQueue<T>::~CQueue(){ Node<T>* pTmpNode; while(m_pFront){ pTmpNode = m_pFront->m_pNext; delete m_pFront; m_pFront = pTmpNode; } } template<typename T> bool CQueue<T>::mIsEmpty() const{ return (m_pFront==NULL) ? true : false; } template<typename T> T CQueue<T>::mFirst() const{ if(!mIsEmpty()) return m_pFront->m_nData; } template<typename T> T CQueue<T>::mLast() const{ if(!mIsEmpty()) return m_pRear->m_nData; } template<typename T> bool CQueue<T>::mIsFull() const{ Node<T>* pNode = new Node<T>; if(pNode){ delete pNode; return true; } return false; } template<typename T> CQueue<T>& CQueue<T>::mAdd(const T& data){ Node<T>* pNode = new Node<T>(data); if(m_pFront) m_pRear->m_pNext = pNode; else m_pFront = pNode; m_pRear = pNode; return *this; } template<typename T> CQueue<T>& CQueue<T>::mDelete(){ if(m_pFront){ Node<T>* p = m_pFront->m_pNext; delete m_pFront; m_pFront = p; } return *this; } int main(){ CQueue<int> queue; for(int i = 0;i < 50; i ++){ queue.mAdd(i); cout << queue.mLast() << endl; } system("pause"); return 0; }
队列和栈是最为经典的两个数据结构,实现方式以线性表(数组)或者链表形式较为多见。
相关文章推荐
- 【数据结构练习】基于链表结构实现的队列
- 数据结构之——基于数组实现的循环队列
- 数据结构学习中的简单问题(一):用链表方式实现的队列输出杨辉三角
- js实现栈、队列、链表数据结构
- 基于链表实现Java 自定义Queue队列
- 算法导论第十章 基本数据结构实现(栈,队列,链表),课后题答案
- 基于链表的队列实现
- Python 使用由单链表构建的数组实现有边际优先队列 (基于class, 包含迭代器)
- 基于链表的队列实现
- 数据结构:双向链表实现队列与循环链表
- 【数据结构】队列-链表的实现
- 数据结构 多线程安全队列基于数组实现
- 一步一步学数据结构之1--1(队列--单链表实现--含队头尾指针)
- 数据结构_链表实现无限循环的"环"结构/循环队列
- 数据结构(三)队列(一)链表实现
- 数据结构(队列--单链表表实现--不含队头尾指针)
- 几种简单的数据结构的C++实现,树,图,链表,环形队列,栈等---栈篇
- 数据结构示例之用链表实现顺序队列
- 基于链表及环形队列的生产者与消费者简单实现
- 基于链表实现队列