📄 stack.h
字号:
#include<assert.h>
template<class type> class stack;
template<class type> class stacknode{
friend class stack<type>;
private:
type data;
stacknode<type>* link;
stacknode(type d=0,stacknode<type>* l=NULL): data(d),link(t){}
};
template<class type>class stack{
public:
stack():top(NULL){}
~stack();
void push(const type& item);
type pop();
type gettop();
void makeempty();
int isempty()const{ return top=NULL;}
private:
stacknode<type>* top;
};
template<class type>stack<type>::~stack(){
stacknode<type>* p;
while(top!=NULL){p=top;top=top->link; delete p;}
}
//往栈顶插入元素
template<class type>stack<type>::push(const type& item){
stacknode<type>* p=top;
top=new stacknode<type>(item,p);
}//这个压入函数是自己改过的
//删除栈顶元素
template<class type>type stack<type>::pop(){
assert(!isempty());
stacknode<type>* p=top;
type revalue=p->data; top=top->link;
delete p; return revalue;
}
template<class type>type stack<type>::gettop(){
assert(!isempty());
return top->data;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -