- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
#include stdio.h
#define X 8
#define Y 8
#define N 8
struct child
{
int x;
int y;
int wayout;//子节点访问次数
}node[N];
int chess[X][Y];
int addx[N]={-2,-1,1,2,2,1,-1,-2};
int addy[N]={1,2,2,1,-1,-2,-2,-1};
int way(int x,int y,int m,int n)//计算子节点出口多少
{
int i;
int tx;
int ty;
int count=-1;
for(i=0;iN;i++)
{
tx=x+addx[i];
ty=y+addy[i];
if((x=0)(y=0)(xX)(yY)(tx=0)(ty=0)(txX)(tyY)(chess[tx][ty]==0)(chess[x][y]==0)((tx!=m)||(ty!=n)))//进行子节点出口的判定
{
count++;
}
}
return count;
}
int finalway(int x,int y)//完成最后节点的确定
{
chess[x][y]=X*Y-1;
int tx;
int ty;
int i;
for(i=0;iN;i++)
{
tx=x+addx[i];
ty=y+addy[i];
if((x=0)(y=0)(xX)(yY)(tx=0)(ty=0)(txX)(tyY)(chess[tx][ty]==0)((tx!=x)||(ty!=y)))//进行最后节点出口的判定
{
chess[tx][ty]=X*Y;
return 1;
}
}
return 0;
}
void sort(child *point)
{
int i,j;
struct child swap;
for(i=0;iN;i++)//采用冒泡排序
{
for(j=0;jN-1;j++)
{
if(point[j].wayoutpoint[j+1].wayout)
{
swap=point[j];
point[j]=point[j+1];
point[j+1]=swap;
}
}
}
/*for(i=0;iN;++i)
{
for(t=i,j=i+1;jN;++j)
if(point[j].wayoutpoint[t].wayout)
t=j;
if(ti)
{
swap=point[i];
point[i]=point[t];
point[t]=swap;
}
}*/
}
int TravelChessBoard(int x,int y,int tag)
{
int xx=x;
int yy=y;
int i;
/*if(tagX*Y)
{
//chess[xx][yy]=tag;
printf(The horse has travelled the chess borad\n);
return 1;
}*/
if(tag!=X*Y)
{
for(i=0;iN;i++)
{
node[i].x=xx+addx[i];
node[i].y=yy+addy[i];
node[i].wayout=way(node[i].x,node[i].y,xx,yy);
}
sort(node);
for(i=0;(node[i].wayout0)(i=N);i++);//去掉访问过的节点和没有出口的节点
if(i==N)return 0;
for(;iN;i++)
{
xx=node[i].x;
yy=node[i].y;
chess[xx][yy]=tag;
if(TravelChessBoard(xx,yy,tag+1)==1)
return 1;
else chess[xx][yy]=0;
}
}
else
{
if(finalway(xx,yy))return 1;
else
{
return 0;
}
}
return 0;
}
int main()
{
int i,
您可能关注的文档
- 隧道监控量测与信息反馈技术.ppt
- 隧道开挖光面爆破QC小组活动XX.doc
- 隧道路面专项施工方案.doc
- 隧道锚杆施工技术交底、作业指导书、施工控制.doc
- 隧道锚杆与钢架支护施工工艺╱隧道工艺标准.doc
- 隧道排水沟施工技术交底.doc
- 隧道施工安全(演示版).doc
- 隧道湿喷砼方案.doc
- 隧道四电接口施工质量管理办法.doc
- 隧道支护班--劳务分项承包合同.doc
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)