Advertisement
Guest User

Untitled

a guest
Jan 21st, 2020
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 KB | None | 0 0
  1.     for (int i = 0; i < count_arcs; i++) {
  2.  
  3.         Arc arc( i, matrix[0][i], matrix[1][i] );
  4.        
  5.         if (arc.isLoop()) {//записываем петлю в матрицу последоватльной смежности
  6.             vector<Arc> dual_arc;
  7.             dual_arc.push_back(arc);
  8.             dual_arc.push_back(arc);
  9.             arc_coherent.push_back(dual_arc);
  10.         }
  11.  
  12.         for (int j = 0; j < count_arcs; j++) {
  13.            
  14.             if (i == j) { // пропускаем повторяющийся столбец
  15.                 continue;
  16.             }
  17.  
  18.             Arc arc_step(j, matrix[0][j], matrix[1][j]);
  19.  
  20.             bool is_next = matrix[1][j] == arc.getStart();
  21.             if ( is_next ) {
  22.                
  23.  
  24.                 vector<Arc> dual_arc;
  25.                
  26.                 if ( arc.getEnd() == arc_step.getStart() ) {//записываем в матрицу последоватльной смежности последовательно две дуги, предварительно упорядочивая их
  27.                     dual_arc.push_back(arc);
  28.                     dual_arc.push_back(arc_step);
  29.                 } else {
  30.                     dual_arc.push_back(arc_step);
  31.                     dual_arc.push_back(arc);
  32.                 }
  33.                 arc_coherent.push_back(dual_arc);
  34.             }
  35.         }
  36.  
  37.         for (int j = i + 1; j < count_arcs; j++) {
  38.             bool is_parallel = ( matrix[0][j] == arc.getStart() ) || ( matrix[1][j] == arc.getEnd() );//условие параллельности 2 дуг
  39.             if ( is_parallel ) {
  40.                 Arc arc_step(j, matrix[0][j], matrix[1][j]);
  41.  
  42.                 vector<Arc> dual_arc;
  43.                 dual_arc.push_back(arc);
  44.                 dual_arc.push_back(arc_step);
  45.                 arc_parallel.push_back(dual_arc);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement