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

📄 stack.h

📁 使用了两个栈存储数据
💻 H
字号:
#include<assert.h>

template<class Type>class Stack
{
public:
	Stack(int=100);
	~Stack(){delete[]elements;}
	void push(const Type&item);
	Type pop();
	Type GetTop();
	void MakeEmpty(){top=-1;}
	int IsEmpty()const{return top==-1;}
	int IsFull()const{return top==maxSize-1;}
private:
	int top;
	Type *elements;
	int maxSize;
};
template<class Type> Stack<Type>::Stack(int s):top(-1),maxSize(s)
{
	//建立一个最大尺寸为s的空栈,若分配不成功则错误处理
    elements=new Type[maxSize];    //创建栈空间
	assert(elements!=0);            //断言:动态储存分配成功与否
    
}
template<class Type>void Stack<Type>::push(const Type&item)
{//若栈不满,则将元素item插到该栈的栈顶,否则出错处理。
   assert(!IsFull());      //断言:若栈不满则继续执行
   elements[++top]=item;   //栈顶指针先加1,然后按此地址进栈
}

template<class Type> Type Stack<Type>::pop()
{
 //若栈不空则函数返回该站栈顶元素的值。
	assert(!IsEmpty());             //断言:判断空否,若断言成立则继续执行
	return elements[top--];           //返回栈顶元素的值
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -