数据结构c语言迷宫源代码,数据结构-C语言实现迷宫程序编写.doc

#includestruct stacknode

{

int x;

int y;

struct stacknode *next;

};

typedef struct stacknode stacklist;

typedef stacklist *llink;

llink path=NULL;

//栈数据的存入

llink push(llink stack,int x,int y)

{

llink newcode;

newcode=(llink)malloc(sizeof(stacklist));

if(!newcode)

{

printf("内存分配失败\n");

return NULL;

}

newcode->x=x;

newcode->y=y;

newcode->next=stack;

stack=newcode;

return stack;

}

//栈数据的输出

llink pop(llink stack,int *x,int *y)

{

llink top;

if(stack!=NULL)

{

top=stack;

stack=stack->next;

*x=stack->x;

*y=stack->y;

free(top);

return stack;

}

else *x=-1;

}

//主程序

//数字:表示可走的路

//数字:表示墙,不通

main()

{

//制定迷宫数组

int migong[7][10]={1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,1

,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,0,0,1,1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0

,0,1,1,1,1,1,1,1,1,1,1};

int i =0,j=0;

int x=5,y=8;

printf("迷宫如下所示\n");

for(i=0;i<=6;i++)

{

for(j=0;j<=9;j++)

printf("%d ",migong[i][j]);

printf("\n");

printf("\n");

}

while(x!=1||y!=1)

{

migong[x][y]=2;

if(migong[x-1][y]==0)//向上走

{

x--;

path=push(path,x,y);

}

else if(migong[x+1][y]==0)//向下走

{

x++;

path=push(path,x,y);

}

else if(migong[x][y-1]==0)//向左走

{

y--;

path=push(path,x,y);

}

else if(migong[x][y+1]==0)//向右走

{

y++;

path=push(path,x,y);

}

else//上下左右都走不通,退回来,并标定退回路线

{

migong[x][y]=3;

path=pop(path,&x,&y);

}

}

migong[x][y]=2;//标示出最后一点

printf("3\n表示曾经走过的路线,\n2\n表示走出迷宫路径");

printf("在寻找过程中的路线记录如下所示\n");

for(i=0;i<=6;i++)

{

for(j=0;j<=9;j++)

printf("%d ",migong[i][j]);

printf("\n");

printf("\n");

}

}

第 4 页 共 4页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值