资源简介
数据结构走迷宫 c语言完整代码 迷宫代码 迷宫完整代码
代码片段和文件信息
#include “ds.h“
using namespace std;
struct StackNode//迷宫的坐标位置类型
{
int x; //迷宫的行
int y; //迷宫的列
int di; //从此通道块走向下一通道快的“方向”
struct StackNode *next; //指针变量
};
typedef StackNode*linkStack;
int InitStack(linkStack &S)
{ //构造空栈
S=NULL;
return OK;
}
int DestroyStack(linkStack &S) //销毁栈
{
linkStack p;
while(S)
{
p=S;
p=p->next ;
free(S);
S=p;
}
return OK;
}
int StackEmpty(linkStack S)//判断栈是否为空
{
if(S==NULL)
return TRUE;
else
return FALSE;
}
int Push(linkStack &S int xint yint di)//在栈顶压入新数据元素
{
linkStack p;
p=(linkStack)malloc(sizeof(StackNode));
p->x =x;
p->y =y;
p->di =di;
p->next=S;
S=p;
return OK;
}
int Pop(linkStack &Sint &xint &yint &di) //栈顶元素出栈
{
linkStack p;
if(!StackEmpty(S))
{
p=S;
di=p->di ;
x=p->x;
y=p->y;
S=S->next ;
free(p);
return OK;
}
else
{
cout<<“栈已空,无值出栈!\n“;
return ERROR;
}
}
int ClearStack(linkStack &S)//清空栈的数据
{
linkStack pq;
p=S;
while(p!=NULL)
{
q=p;
p=p->next;
free(q);
}
S=NULL;
return OK;
}
void OutPut1(linkStack S)//输出栈内的数据
{
linkStack p;
int i=0;
p=S;
if(S==NULL)
cout<<“空栈,无值可输出!“< while(p)
{
i++;
cout<<“第“< cout<<“(“<x <<““<y <<““ <di <<“) “ ;
p=p->next;
cout< }
}
void OutPut(linkStack S)//输出栈内的数据
{
linkStack S1;
InitStack(S1);
linkStack p;
int xydii=0;
p=S;
if(S==NULL)
cout<<“空栈,无值可输出!“< while(p)
{
di=p->di;
x=p->x;
y=p->y;
Push(S1xydi)
评论
共有 条评论