📄 seqstack.h
字号:
/*顺序栈头文件
Written by OOTTMA
2005-9-14*/
#include "iostream.h"
#include "stdlib.h"
template <class type> class seqstack
{
private:
int top;
type *stacka;
int maxsize;
public:
seqstack(int size);
~seqstack()
{
delete []stacka;
}
void push(const type &item);
type pop(void);
type gettop();
int empty(void)const
{
return top==-1;
}
int full()const
{
return top==maxsize-1;
}
void clear()
{
top=-1;
}
void popall();
};
template <class type> seqstack <type>::seqstack(int size):top(-1),maxsize(size)
{
stacka=new type[maxsize];
if (stacka==NULL)
{
cout<<"动态存储分配失败。"<<endl;
exit(1);
}
}
template <class type> void seqstack <type>::push(const type &item)
{
if (full())
{
cout <<"栈已满,不能入栈!"<<endl;
exit(1);
}
top++;
stacka[top]=item;
}
template <class type> type seqstack<type>::pop()
{
if (empty())
{
cout<<"栈已空!"<<endl;
exit(1);
}
type data=stacka[top];
top--;
return data;
}
template <class type> type seqstack <type>::gettop()
{
if (empty())
{
cout<<"栈已空!"<<endl;
exit(1);
}
return stacka[top];
}
template <class type> void seqstack <type>::popall()
{
for (int i=1;i<=maxsize;i++)
{
cout<<gettop();
cout<<pop();
}
cout <<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -