好玩的递归:(
     递归其实一点也不好玩:(
这个递归函数会引起“无效命令”错误,但我实在看不出哪里出错了,请你帮我检查一下好吗?
函数功能:给出一个参数结点find_node,搜索可以到达全局结点end_node的路径,将该路径存储在Beads_road[50][2]二维数组中.(一维就够了,但在程序其他地方需要用到第二维数据)
数据结构:共有9*9个方块。
	Beads_checked[9][9],值为1时表示由此方块递归,无法到达全局结点end_node.为0时表示由此方块递归,可以到达全局结点end_node.开始时,Beads_checked[9][9]={0}
	Beads_road[50][2],存放搜索到的路径值,例如第2行8列的方块,将其转变为一个整数:num=2*9+8%9,最后由a=num/9,b=num%9,b=b?b:9;还原行列值。
int Beads_get_road(Beads_node find_node)
{
	int i,j,flag=0,find_num=0;
	Beads_node node;
	int x,y;
	int aa[]={-1,1,0,0};
	int bb[]={0,0,-1,1};
	for(i=0;i<4;i++)
	{
		node.a=find_node.a+aa[i];
		node.b=find_node.b+bb[i];	
		if (!(node.a>0&&node.a<10&&node.b>0&&node.b<10))
			continue;
		if( (!Beads_Beads[node.a][node.b]) && (!Beads_checked[node.a][node.b]) )
		{
			if(node.a==end_node.a && node.b==end_node.b)
			{	
				j=0;
				while(Beads_road[j][0]!=0)
					j++;
				Beads_road[j][0]=find_node.a*9+find_node.b%9;
				return 1;
			}
			else if( Beads_get_road(node) )
			{
				find_num++;
				return 1;
			}
		}
	}
	
	if(find_num>0)
	{
		Beads_checked[find_node.a][find_node.b]=0;
		j=0;
		while(Beads_road[j][0]!=0)
			j++;
		Beads_road[j][0]=find_node.a*9+find_node.b%9;	
		return 1;				
	}
	else
	{
		Beads_checked[find_node.a][find_node.b]=1;
		return 0;
	}
}