赞
踩
栈的链表实现相对来说较为容易,而且很灵活,数组实现的话得考虑空间不够用时增加空间,但是链表实现不需要考虑这个。
对于一些编译器来说,派生类必须把父类中的虚函数全部实现,否则会报错,编译器会把派生类认成抽象类,这是一件很麻烦的事情。
#include<iostream> using namespace std; //先实现数据抽象类,然后再从抽象类中派生。 /* 栈的基本操作: 出栈 入栈 返回栈顶元素 辅助操作: 判断栈空 返回栈中元素个数 */ template<class T> class stack{ public: virtual ~stack(){ }; virtual bool empty()const=0; virtual int size()const=0; virtual void pop()=0; virtual T top()=0; virtual void push(const T& element)=0; }; template<class T> struct node{ T element; node<T> *next; //方法 node(){ } ; node(const T& mElement){element=mElement; } node(const T& mElement,node<T>* mNext) { element=mElement; next=mNext; } }; template<class T> class stack_link : public stack<T>{ private: node<T> *stackTo
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。