Скачиваний:
10
Добавлен:
01.05.2014
Размер:
1.53 Кб
Скачать
//=== ЏҐаҐЎ®а б ў®§ўа в®¬: ®влбЄ ­ЁҐ Ј ¬Ё«мв®­®ў  жЁЄ«  ===
#include  <stdio.h>
#include  <conio.h>
#include  <stdlib.h>
#include  <string.h>

struct VV { int d;
	     VV * next;
	  };

VV * LIST[100];
int NEW[100], L[100], X[100], n=0, m=0 ;

void GAM (int k)
{ VV * u;
  if(k == n)
   { printf("<");
     for (int i=0; i<k; i++) printf("%2d", X[i]);
     printf(">\n"); getch();
   }
  else
   { for (u = LIST[X[k-1]]; u ; u = u->next)
     { if(NEW[u->d])
	{ NEW[u->d] = 0;
	  X[k] = u->d;
	  GAM(k+1);
	  NEW[u->d] = 1;
	}
     }
   }
}

void main()
{ int i, j, f, G[10][10];
  VV * v;
  char s[20];
  for(i=0; i<10; i++)
    for(j=0; j<10; j++) G[i][j] = 0;
  printf("\nSDPP test ====================== (C)lgn, 16.10.03"
         "\n ‚ў®¤ бЇЁбЄ  ᬥ¦­®бвЁ...\n");
  do{
     printf( "v[%2d]=", n);
     gets(s);
     for (i=0; i<strlen(s); i++)
     { j = s[i] - '0';
       G[n][j] = G[j][n] = 1;
     }
     n++;
   } while((strlen(s))&&(n < 10));
  n=0;
  for(i=0; i<10; i++)
  { LIST[i] = 0;
    G[i][i] = 0;
    f = 0;
    printf("\n%2d:", i);
    for (j=0; j<10; j++)
     if(G[i][j])
     { f++;
       v = new VV;
       v->d = j; v->next = LIST[i]; LIST[i] = v;
       printf(" %2d", j);
     }
     else printf("  -");
     if(f) n++;
     m+=f;
  }
  printf("\n|V|=%2d, |E|=%2d", n, m/2);

  for(i=0; i<n; i++) NEW[i] = 1;
  printf("\nThe Gamilton's Ways");
  X[0] = 0; NEW[0] = 0; GAM(1);

  printf("\n ===== Љ®­Ґж =====\n"); getch();
}
Соседние файлы в папке Демонстрационные примеры к курсовой по СиАОД