c++利用链表模板类实现简易队列

  

本文实例为大家分享了c++利用链表模板类实现一个队列的具体代码,供大家参考,具体内容如下

  

<强>设计思想: MyQueue.h中对模板类进行声明和实现。首先定义结点的结构体,包含数据和指针域两部分。队列类定义中声明和实现了元素入队,出队,打印队首元素和队列等方法。

  

  

1)模板类的声明和定义不能分开(即不能分别放在. h和. cpp文件里)。

  

2)声明新节点时,如果声明的节点是辅助操作的,可以不用新关键字,例如在析构函数中,直接用:Node *临时;定义即可。如果声明一个新节点加入队列,则要用新关键字,否则会报出nullptr异常。

  

& # 8203; ConsoleApplication.cpp

        # include“stdafx.h”   # include“MyQueue.h”         int main ()   {   MyQueue      

MyQueue。h
  

        # include & lt; iostream>   使用名称空间性病;   template<类T>   结构节点{   T数据;   Node*下;   };   template<类T>   类MyQueue {   私人:   Node *头;//头指针   int数;//队列元素数量   公众:   MyQueue ();   ~ MyQueue ();   空白outPrint();//打印队列元素   空推(const T, e);//元素入队   空白前();//返回队首元素   空白pop();//弹出队首元素   int getCount ();      };   模板& lt;类T>   MyQueue   MyQueue*温度;   而(头!=nullptr) {   temp=头;   头=头→下;   删除临时表;   数-=1;   }   cout & lt; & lt;“析构函数已完成“& lt; & lt;endl;   cout & lt; & lt;“队列元素个数为“& lt; & lt;数& lt; & lt;endl;   }   }   template<类T>   int MyQueue   空白MyQueue *节点=新Node;//此处留意,声明新节点,不使用新初始化会报的错   节点→数据=https://www.yisu.com/zixun/e;   节点-> next=nullptr;   头=节点;         }   其他{   节点 * temp=头;   for (int i=0;我数<- 1;+ +){   temp=temp ->下一个;   }   节点 *节点=新节点;   临时下一步->=节点;   节点->数据=e;   节点-> next=nullptr;   }   + +,//队列元素数量加1   }   模板类T> <空白MyQueue :: outPrint () {   如果(头==nullptr) {   cout <"空队列”& lt; & lt;endl;   }   其他{   Node * temp=头;   cout & lt; & lt;“队列元素为:”;   而(临时!=nullptr) {   cout & lt; & lt;临时→data<& lt;“”;   temp=temp→下;   }   cout & lt; & lt;endl;      }   }   模板& lt;类T>   空白MyQueue *温度;   temp=头;   头=头→下;   cout & lt; & lt;“弹出队首元素:“& lt; & lt;临时→data<& lt;endl;   删除临时表;   数-=1;   }   }      模板& lt;类T>   空白MyQueue      

运行结果:

  

 C + +利用链表模板类实现简易队列

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

c++利用链表模板类实现简易队列