快的马

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

这是用贪婪法编的马的遍历。

p()用来选择出口,g()考察下个出口的出口数。

#include<stdio.h>

#include<conio.h>

int m[8][8]=,a[8]=,

b[8]=;

int k=0;

int g(int x,int y)

{int x1,y1,com=0,i=0;

if(x<0x>7y<0y>7m[x][y]>0)

return(8);

else for(;i<7;i++)

{x1=x+a[i];y1=y+b[i];

if(x1>=0&&x1<8&&y1>=0&&y1<8&&m[x1][y1]==0)

com++;}

return(com);

}

p(int x,int y)

{int i,n,k,j=8;

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

{n=g(x+a[i],y+b[i]) ;

if(n<j)

{ k=i;j=n;}

}

return(k);

}

f(int x,int y)

{int i;

if(k==64)

printf("OK ");

else{

i=p(x,y);

m[x][y]=++k;

x=x+a[i];y=y+b[i];

f(x,y); }

}

main()

{ int x,y;

f(0,0);

printf(" ");

for(x=0;x<8;x++)

{for(y=0;y<8;y++)

printf("%3d",m[x][y]);

printf(" ");}

getch();

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航