Advertisement
Guest User

Depth-First Search in C

a guest
Nov 18th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.12 KB | None | 0 0
  1. int DFS(stos *S1, drzewo *D1) // Depth-First Search - Przeszukiwanie w głąb
  2. {
  3.     drzewo pomocniczeD = (*D1);
  4.  
  5.     DodawanieDoStosu(&(*S1), &(*D1));
  6.     fprintf(stdout, "%d ", (pomocniczeD->kluczD));
  7.     (*D1)->czyOdwiedzony = 0;
  8.  
  9.     while ((*S1) != 0)
  10.     {
  11.         while (((pomocniczeD->lewy) != 0) && ((pomocniczeD->lewy->czyOdwiedzony) != 0))
  12.         {
  13.             DodawanieDoStosu(&(*S1), &pomocniczeD->lewy);
  14.             if (pomocniczeD->lewy->czyOdwiedzony != 0)
  15.                 fprintf(stdout, "%d ", (pomocniczeD->lewy->kluczD));
  16.             pomocniczeD->lewy->czyOdwiedzony = 0;
  17.             pomocniczeD = pomocniczeD->lewy;
  18.         }
  19.         while ((pomocniczeD->prawy) == 0)
  20.         {
  21.             UsuwanieZPoczątku(&(*S1));
  22.             pomocniczeD = (*S1)->kluczS;
  23.         }
  24.  
  25.         if ((pomocniczeD->prawy->czyOdwiedzony) == 0)
  26.         {
  27.             UsuwanieZPoczątku(&(*S1));
  28.             if ((*S1) != 0)
  29.                 pomocniczeD = (*S1)->kluczS;
  30.             else if ((*S1) == 0)
  31.                 return 0;
  32.         }
  33.         else
  34.         {
  35.             DodawanieDoStosu(&(*S1), &pomocniczeD->prawy);
  36.             if (pomocniczeD->prawy->czyOdwiedzony != 0)
  37.                 fprintf(stdout, "%d ", (pomocniczeD->prawy->kluczD));
  38.             pomocniczeD->prawy->czyOdwiedzony = 0;
  39.             pomocniczeD = pomocniczeD->prawy;
  40.         }
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement