📄 stack.h
字号:
#include <stdio.h>
#include <stdlib.h>
//定义坐标位置类型
typedef struct PositionType{
int row;
int col;
int nextDirection;
//0表示障碍,1表示通路,2表示开始点,3表示结束点,*表示走过的路径,@表示死路,#表示碰到的障碍
char sign;
}PositionType;
typedef PositionType SElemType;
typedef struct LNode
{
PositionType data;
struct LNode *next;
}LNode,*LinkStack;
int initStack(LinkStack &S)
{
S=new LNode;
S->next=NULL;
return 1;
}
int stackLength(LinkStack S)
{
LinkStack p;
p=new LNode;
int i=0;
p=S->next;
while(p)
{
i++;
p=p->next;
}
return i;
}
int pop(LinkStack &S,SElemType &e)
{
if(S->next!=NULL)
{
e=S->next->data;
S->next=S->next->next;
return 1;
}
else return 0;
}
int clearStack(LinkStack &S)
{
LinkStack p;
p=new LNode;
while(S->next)
{
p=S->next;
S->next=S->next->next;
delete p;
}
return 1;
}
int getTop(LinkStack &S,SElemType &e)
{
LinkStack p=new LNode;
p=S->next;
e=p->data;
return 1;
}
int push(LinkStack &S,SElemType e)
{
LinkStack p;
p=new LNode;
p->data=e;
p->next=S->next;
S->next=p;
return 1;
}
int destroyStack(LinkStack &S)
{
LinkStack q;
while(S)
{
q=S->next;
delete S;
S=q;
}
return 1;
}
int stackEmpty(LinkStack &S)
{
LinkStack p=S;
if(p->next)
return 0;
else return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -