seqstack.h

来自「c++实现栈」· C头文件 代码 · 共 83 行

H
83
字号
/*顺序栈头文件
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 + =
减小字号Ctrl + -
显示快捷键?