⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seqstack.h

📁 c++实现栈
💻 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 + -