介绍
这篇文章主要为大家展示了如何实现c++栈(栈)的模板类,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
<强> 1。基本概念强>
栈中的元素遵守“先进后出”的原则(后进先出后进先出)
只能在栈顶进行插入和删除操作
压栈(或推入,进栈)即推动,将数据放入栈顶并将栈顶指针加一
出栈(或弹出)即流行,将数据从栈顶删除并将栈顶指针减一
栈的基本操作有:流行,推动,判断空,获取栈顶元素,求栈大小
<强> 2。构造栈强>
可以使用数组构造栈,也可以使用单向链表构造,我觉得使用单向链表更加灵活方便、下面的例子我使用单向链表来构造栈。
单向链表的头插法比较适合,链表头作为栈顶:
节点的数据结构:
template<类T> 结构节点 { T值;//储存的值 node*下; 节点():next (nullptr){}//构造函数 节点T (T):值(T)下(nullptr) {} };
用模板类构造一个简单的堆栈类:
template<类T> 类myStack { int碳纳米管;//入栈数量 node*头;//栈的头部 公众: myStack(){碳管=0;头=new node ;} 空白stackPush arg (T);//入栈 T stackPop ();//出栈 T stackTop ();//获取栈顶元素 空白printStack ();//打印栈 int数();//获取栈内元素个数 bool isEmpty ();//判断空 }; template<类T> 空白myStack * pnode=new node (arg);//申请入栈元素的空间 pnode→下=头→下; 头→下=pnode; 碳纳米管+ +; } template<类T> T myStack * temp=头→下; 头→下=头→下一步→下; T popVal=temp→价值; 删除临时表; 返回popVal; } } template<类T> T myStack 空白myStack * temp=头; 而(临时→下一个!=nullptr) { temp=temp→下; cout & lt; & lt;临时→价值& lt; & lt;endl; } } } template<类T> int myStack bool myStack 以上就是关于如何实现c++栈(栈)的模板类的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看的到。
如何实现c++栈(栈)的模板类