📄 stack.h
字号:
//程序名:Stack.h
//程序功能:栈类的头文件
//作者:黄秋旋
//日期:2008.12.20
//版本:1.0
//修改内容:
//修改日期:
//修改作者:
//对应类实现文件: labyrinth.h
//对应主程序文件: labyrinth.cpp
#include<iostream.h>
#include<stdlib.h>
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct items //存储通路坐标信息的结构体
{
int x,y,d;
};
typedef items Type;
struct Node //栈节点的结构体
{
Type data;
Node *next;
};
class Stack //栈类定义
{
private:
Node *atop;
public:
Stack(){atop=NULL;}; //构造函数
~Stack(); //析构函数
Type top(); //取栈顶函数
void pop(); //出栈函数
bool empty(); //判空函数
bool push(Type& x); //压栈函数
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//函数名:析构函数
//函数功能:释放栈类的空间
//函数参数:无
//参数返回值:无
Stack::~Stack()
{
Node *p;
while(atop!=NULL)
{
p=atop;
atop=atop->next;
delete p; //释放节点p的空间
}//while
};
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//函数名:取栈顶元素
//函数功能:取出栈顶元素
//函数参数:无
//参数返回值:atop->data :栈顶元素的数据
Type Stack::top()
{
if(atop==NULL)
exit(1);
else
return (atop->data); //返回栈顶元素的内容
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//函数名:出栈函数
//函数功能:使栈顶元素出栈
//函数参数:无
//参数返回值:无
void Stack::pop()
{
if(atop==NULL) exit(1); //当栈为空时,正常退出
else
{
atop=atop->next; //栈顶指针指向下一个元素
}
};
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//函数名:判空函数
//函数功能:判断栈是否为空
//函数参数:无
//参数返回值:bool:当栈为空时返回,否则返回0
bool Stack::empty()
{
return atop==NULL;
};
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//函数名:压栈函数
//函数功能:将通路数据压入栈中
//函数参数:Type &x:表示按引用方式,将通路的实参传给函数
//参数返回值:bool:压栈完成时返回true
bool Stack::push(Type &x)
{
Node *p;
p=new Node; //为节点指针p申请空间
p->data=x; //将通路信息赋给p的数据域
p->next=atop; //用头插入的方式将节点p插入到栈链中
atop=p; //栈顶指针指向p
return true; //压栈完成,返回true
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -