|
楼主 |
发表于 2004-5-14 08:23:01
|
显示全部楼层
< center" align=center>从图中找出哈密顿回路<p></p></P><>#include<stdio.h><p></p></P><>#define NE 7<p></p></P><P>void getline(int ne,int *pd2[],int *de,int *me,int pp,int pe,int *no)<p></p></P><P>{<p></p></P><P>int i,j,h;<p></p></P><P>if(pe==ne&&de[ne-1]==0)<p></p></P><P> {<p></p></P><P> ++(*no);<p></p></P><P> printf("\nNO%5d methed: ",*no);printf(" 0 ");<p></p></P><P> for(i=0;i<ne;++i)printf(" %d ",de);<p></p></P><P> printf("\n");<p></p></P><P> return;<p></p></P><P> }<p></p></P><P>for(j=0;j<ne;++j)<p></p></P><P> {<p></p></P><P> if(pd2[pp][j]!=0&&me[j]==0)<p></p></P><P> {<p></p></P><P> me[j]=1;de[pe]=j;<p></p></P><P> getline(ne,pd2,de,me,j,pe+1,no);<p></p></P><P> printf(" no=%d ",*no); me[j]=0;<p></p></P><P> }<p></p></P><P> }<p></p></P><P>}<p></p></P><P> <p></p></P><P>main()<p></p></P><P>{<p></p></P><P>int ne,*pd2[NE],i,j,h,pp,pe,de[NE],me[NE],no;<p></p></P><P>int a[NE][NE]={{0,1,1,0,0,0,0},{1,0,1,1,0,0,0},{1,1,0,0,1,1,0},<p></p></P><P>{0,1,0,0,0,1,0},{0,0,1,0,0,0,1},{0,0,1,1,0,0,1},{0,0,0,0,1,1,0}};<p></p></P><P>ne=NE;<p></p></P><P>for(i=0;i<ne;i++)pd2=&a[0];<p></p></P><P>for(i=0;i<ne;i++)me=0;<p></p></P><P>pp=0;pe=0;no=0;<p></p></P><P>getline(ne,pd2,de,me,pp,pe,&no);<p></p></P><P>printf("\n* * * total methed is %d * * *",no);<p></p></P><P>}</P> |
|