数据结构
如何用栈来实现走地图的操作
以下为代码,以(1,1)为起点,(n,m)为终点求步数的代码;
#include<stdio.h>
#include<stdlib.h>
typedef struct Linknode{
int x;
int y;
struct Linknode *next;
}*LiStack;
void InitList(LiStack &S){
S = (LiStack )malloc(sizeof(LiStack));
S->next=NULL;
S->x=0;
S->y=0;
}
void Push(LiStack &S, int i,int j)
{
LiStack q = (LiStack )malloc(sizeof(LiStack));
q->x= i;
q->y = j;
q->next = S->next;
S->next = q;
}
void Pop(LiStack &S, int *e,int *t)
{
LiStack p=S->next;
*e = p->x;
*t = p->y;
S->next = p->next;
free(p);
}
void DestroyStack(LiStack &S)
{
LiStack p = S;
while (S != NULL)
{
S = S->next;
free(p);
p = S;
}
}
int main()
{
LiStack S;
InitList(S);
int n,m,j,i;//n行m列
scanf("%d %d",&n,&m);
int**p=(int**)malloc(sizeof(in