链队
来源:互联网 发布:网络不稳定怎么回事 编辑:程序博客网 时间:2024/05/16 00:53
今天,我们一起用C++写一个链对,具体如下所示。
LinkQueue.h具体内容如下:
#include "QueueNode.h"template<typename Type> class LinkQueue{public:LinkQueue() :m_prear(NULL), m_pfront(NULL){}~LinkQueue(){MakeEmpty();}void Append(const Type item); //insert dataType Delete(); //delete dataType GetFront(); //get datavoid MakeEmpty(); //make the queue emptyvoid Print(); //print the queuebool IsEmpty() const{return m_pfront == NULL;}private:QueueNode<Type> *m_prear, *m_pfront;};template<typename Type> void LinkQueue<Type>::MakeEmpty(){QueueNode<Type> *pdel;while (m_pfront){pdel = m_pfront;m_pfront = m_pfront->m_pnext;delete pdel;}}template<typename Type> void LinkQueue<Type>::Append(const Type item){if (m_pfront == NULL){m_pfront = m_prear = new QueueNode<Type>(item);}else{m_prear = m_prear->m_pnext = new QueueNode<Type>(item);}}template<typename Type> Type LinkQueue<Type>::Delete(){if (IsEmpty()){cout << "There is no element!" << endl;exit(1);}QueueNode<Type> *pdel = m_pfront;Type temp = m_pfront->m_data;m_pfront = m_pfront->m_pnext;delete pdel;return temp;}template<typename Type> Type LinkQueue<Type>::GetFront(){if (IsEmpty()){cout << "There is no element!" << endl;exit(1);}return m_pfront->m_data;}template<typename Type> void LinkQueue<Type>::Print(){QueueNode<Type> *pmove = m_pfront;cout << "front";while (pmove){cout << "--->" << pmove->m_data;pmove = pmove->m_pnext;}cout << "--->rear" << endl << endl << endl;}QueueNode.h具体内容如下:
template<typename Type> class LinkQueue;template<typename Type> class QueueNode{private:friend class LinkQueue < Type > ;QueueNode(const Type item, QueueNode<Type> *next = NULL):m_data(item), m_pnext(next){}private:Type m_data;QueueNode<Type> *m_pnext;};main.cpp具体内容如下:
#include <iostream>using namespace std;#include "LinkQueue.h"int main(){LinkQueue<int> queue;int init[10] = { 1, 3, 6, 8, 9, 2, 0, 5, 4, 7 };for (int i = 0; i < 10; i++){queue.Append(init[i]);}queue.Print();queue.Delete();queue.Print();cout << queue.GetFront() << endl;queue.Print();queue.MakeEmpty();queue.Print();queue.Delete();cin.get();return 0;}运行效果如图1所示:
图1 运行效果
0 0
- 链队
- 链队
- 链队
- 链队
- 链队
- 链队
- 链队
- 链队
- 链队
- 链队
- 数据结构-链队
- 数据结构--链队
- 链队 尹成
- 数据结构(三)-链队
- 舞伴问题(链队)
- 第七周 周一 链队
- 各种数据结构完整实现之 链队
- 算法与数据结构之八----链队
- Directx 中HLSL高级着色器语言 脑补一下吧
- 如何在linux下解压缩rar格式的文件压缩包
- 第二章 Nginx服务器的安装部署
- 卸载Mac OSX上面的ios模拟器
- Mark_Something
- 链队
- Android BLE 蓝牙低功耗教程,中央BluetoothGatt和周边BluetoothGattServer的实现
- lua写排序算法
- C#之常用工程技巧
- 雅虎军规(34条)
- 常用的数据操作函数
- 二进制兼容性
- install ruby 2.1.0 on ubuntu
- Divide Two Integers[leetcode]递归与循环