Показать сообщение отдельно

  #29  
Старый 06.03.2008, 17:52
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
С нами: 11099536

Репутация: 518
По умолчанию

Код:
struct zk  
{
	int flag;
	int status;
	int vershina[2];
	int nomer;
};

zk rules[200];

void initmy_struct(int n_el)
{
 for(int i=0;i<200;rules[i].flag=-1,i++)  ;
}

int choise_step(int cur_vershina,char *decission_str)
{
	int i,j,d;
	char buf[10];
   for(i=0,d=0;rules[i].flag!=-1 && d==0;i++)
   {
	  if(rules[i].status==1)
		  d=1;
   } 
   if(d==1)
   {
     for(i=0;rules[i].flag!=-1;i++)
	 {
        for(j=0;j<2;j++)
		{
			if(rules[i].vershina[j]==cur_vershina && rules[i].status==1)
			{
                rules[i].status=2;
				switch(j)
				{
				case 0:
					if((d=choise_step(rules[i].vershina[1],decission_str))==0)
					{
						;
					}
					break;
				case 1:
					if(d!=0)
					 if((d=choise_step(rules[i].vershina[0],decission_str))==0)
					 {
						;
					 }
					break;
				}
				rules[i].status=1;
			}
		}
	 }
	 return d;
   }
   else
      return 0;  // решение есть...... !!!
}
структура заполняется как
flag равен 1 правило есть в ином случае -1
status на существующем правиле равен 1
vershina[2] тут номера вершин для каждого пути
nomer номер пронумерованного пути
 
Ответить с цитированием