如何实现c++栈(栈)的模板类

  介绍

这篇文章主要为大家展示了如何实现c++栈(栈)的模板类,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。

<强> 1。基本概念

栈中的元素遵守“先进后出”的原则(后进先出后进先出)

只能在栈顶进行插入和删除操作

压栈(或推入,进栈)即推动,将数据放入栈顶并将栈顶指针加一

出栈(或弹出)即流行,将数据从栈顶删除并将栈顶指针减一

栈的基本操作有:流行,推动,判断空,获取栈顶元素,求栈大小

如何实现c++栈(栈)的模板类

<强> 2。构造栈

可以使用数组构造栈,也可以使用单向链表构造,我觉得使用单向链表更加灵活方便、下面的例子我使用单向链表来构造栈。

单向链表的头插法比较适合,链表头作为栈顶:

如何实现c++栈(栈)的模板类

节点的数据结构:

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++栈(栈)的模板类