骑士游历源代码

骑士游历源代码

ID:38214861

大小:15.41 KB

页数:3页

时间:2019-05-25

骑士游历源代码_第1页
骑士游历源代码_第2页
骑士游历源代码_第3页
资源描述:

《骑士游历源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include"stdio.h"#include"stdlib.h"#definemaxlen100intlength=0;//记录所走的步数staticintbx[8]={2,1,-1,-2,-2,-1,1,2};staticintby[8]={1,2,2,1,-1,-2,-2,-1};typedefstruct{intn,m;//n记录行数,m记录列数intch;}node;typedefstruct//定义顺序队列类型{nodedata[maxlen];intfront;intrear;}Sequeue;Sequeue*setqueue()

2、{Sequeue*S;S=(Sequeue*)malloc(sizeof(Sequeue));S->front=0;S->rear=0;returnS;}voidadd(Sequeue*S,intx,inty,intz)//入队函数{if(S->rearrear>=0){S->rear++;S->data[S->rear].n=x;S->data[S->rear].m=y;S->data[S->rear].ch=z;}elseprintf("error");}voiddele(Sequeue*s)//出队函数{if(

3、s->frontrear)s->front++;elseprintf("error");}voidjudge()//判断步数{Sequeue*S;S=setqueue();intx0,y0,x1,y1,x3,y3,i,j;intcount[maxlen+100];inta=0;intstep[maxlen][maxlen];charxa,xb;for(i=0;idata[i].ch=0;}printf("请输入骑士游历的起终点:");scanf("%c,%d%c,%d",&xa,&y0,&xb,&y1

4、);x0=xa-'a';x1=xb-'a';for(i=0;ifrontrear){node*p;x0=S->data[S->front+1].n;y0=S->data[S->front+1].m;for(inti=0;i<8;i++){x3=bx[i]+x0;y3=by[i]+y0;if(x3>=0&&x3<8&&y3>=0&&y3<8&&step[x3][y3]==

5、0){p=(node*)malloc(sizeof(node));p->ch=S->data[S->front+1].ch+1;p->n=x3;p->m=y3;step[x3][y3]=1;if(p->n==x1&&p->m==y1){step[x1][y1]=0;count[a]=p->ch;a++;}elseadd(S,p->n,p->m,p->ch);}}dele(S);}intmin;min=count[0];for(i=1;icount[i])min=count[i];printf("最短步数为:%d",m

6、in);}voidmain(){charnn;nn='y';while(nn=='y'){judge();printf("是否继续输入?('y'是,'n'否)");scanf("%c",&nn);}system("pause");}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。