Advertisement
Guest User

Untitled

a guest
Jan 24th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. void graph::widthAllVertexex(int vertexName)
  2. {
  3.     // есть ли такая вершина в графе вообще
  4.     bool checkVertexName = false;
  5.     for (int i = 0; i < matrixSize; i++)
  6.         if (vertexNames[i] == vertexName)
  7.             checkVertexName = true;
  8.     if (!checkVertexName)
  9.         return;
  10.  
  11.     // помеченные вершины
  12.     bool *used = new bool[currentVertexNumber];
  13.     for (int i = 0; i < currentVertexNumber; i++)
  14.         used[i] = false;
  15.  
  16.     // список вершин
  17.     int *list = new int[edgeNumber * 2];
  18.     int currentVertexNumberInList = 0;
  19.     int firstIndex = 0;
  20.     int lastIndex = 0;
  21.    
  22.    
  23.     int currentVertex = vertexName;
  24.     used[searchVertex(currentVertex)] = true;
  25.    
  26.     list[lastIndex] = currentVertex;
  27.     currentVertexNumberInList++;
  28.     lastIndex++;
  29.  
  30.     while (currentVertexNumberInList != 0)
  31.     {
  32.         currentVertex = list[firstIndex];
  33.         firstIndex++;
  34.         currentVertexNumberInList--;
  35.  
  36.         for (int i = 0; i < currentVertexNumber; i++)
  37.         {
  38.             // нахождение 1 в матрице и была ли помечена вершина
  39.             if (adjacencyMatrix[searchVertex(currentVertex)][i] && !used[i])
  40.             {
  41.                 used[i] = true;
  42.                 list[lastIndex] = vertexNames[i];
  43.                 lastIndex++;
  44.                 currentVertexNumberInList++;
  45.                    
  46.             }
  47.         }
  48.        
  49.         if (currentVertexNumberInList >= 0)
  50.             {
  51.                 cout << currentVertex << " | ";
  52.                 for (int i = firstIndex; i < lastIndex; i++)
  53.                     cout << list[i] << " ";
  54.                 cout << endl;
  55.             }      
  56.     }
  57.  
  58.     delete[] list;
  59.     delete[] used;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement