1 / 5
文档名称:

马踏棋盘.doc

格式:doc   大小:34KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

马踏棋盘.doc

上传人:木易东 2020/7/28 文件大小:34 KB

下载得到文件列表

马踏棋盘.doc

相关文档

文档介绍

文档介绍:#include<>#include<>#definestack_size100#definestackincrement10#defineN8intweight[N][N];intboard[N][N][8];typedefstruct//位置{ intx; inty;}postype;typedefstruct//栈的元素{ intord; postypeseat;//点 intdi;//马的方向}elemtype;typedefstruct//定义栈{ elemtype*base; elemtype*top; intstacksize;}sqstack;sqstacks;intinitstack()//初始化一个空栈{ =(elemtype*)malloc(stack_size*sizeof(elemtype)); if(!)return0; =; =stack_size; return1;}elemtypegettop()//取得栈顶值{ if(==) exit(0); return*(-1);}voidpush(elemtypeelem)//将元素压入栈{ *++=elem;}intpop(elemtype*elem)//将栈顶值出栈{ if(==)return0; *elem=*--; return1;}intstackempty()//判断栈空{ if(=)return1; elsereturn0;}voidoutputpath()//输出马走过的路径{ inti,f,k; sqstacks1=s; intpath[N][N];for(i=0;!=;i++) { path[(*).][(*).]=i+1; ++; } for(f=0;f<N;f++) { printf("\n"); for(k=0;k<N;k++)printf("\t%d",(path[f][k])); } printf("\n");}intpass(postypecurpos)//判断当前位置是否合法{ sqstacks1=s; if(<0||>(N-1)||<0||>(N-1))return0; for(;!=;) { --; if(==(*).&&==(*).)return0; } return1;}postypenextpos(postypecurpos,intdirection)//8个候选方向{ switch(direction) { case1:+=1;-=2;break;case2:+=2;-=1;break;case3:+=2;+=1;break;case4:+=1;