本文实例为大家分享了c++利用链表模板类实现一个队列的具体代码,供大家参考,具体内容如下
<强>设计思想:强> MyQueue.h中对模板类进行声明和实现。首先定义结点的结构体,包含数据和指针域两部分。队列类定义中声明和实现了元素入队,出队,打印队首元素和队列等方法。
1)模板类的声明和定义不能分开(即不能分别放在. h和. cpp文件里)。
2)声明新节点时,如果声明的节点是辅助操作的,可以不用新关键字,例如在析构函数中,直接用:Node
& # 8203; ConsoleApplication.cpp
# include“stdafx.h” # include“MyQueue.h” int main () { MyQueueMyQueue。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++利用链表模板类实现简易队列