Advertisement
meta1211

Untitled

Dec 16th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. //4. Построен список графа с указателем LD.
  2. //Удалить вершины, не имеющие исходящих дуг.
  3. //Адрес этой вершины в списках Trailer заменить на NULL.
  4.  
  5. void DeleteVertsWithZeroCount(Leader *&LD)
  6. {
  7.     Leader *curentLD = LD;
  8.     Leader *prevLD = nullptr;
  9.     while (curentLD)
  10.     {
  11.         if (!curentLD->tr)
  12.         {
  13.             Leader *tmp = curentLD;
  14.             if (prevLD)
  15.             {
  16.                 prevLD->nx = curentLD->nx;
  17.             }
  18.             else
  19.             {
  20.                 LD = LD->nx;
  21.             }
  22.             prevLD = curentLD;
  23.             curentLD = curentLD->nx;
  24.             Leader *Finder = LD;
  25.             while (Finder)
  26.             {
  27.                 Trailer *curTr = Finder->tr;
  28.                 Trailer *prevTr = nullptr;
  29.                 while (curTr)
  30.                 {
  31.                     if (curTr->ld == tmp)
  32.                     {
  33.                         Trailer *t = curTr;
  34.                         if (prevTr)
  35.                         {
  36.                             prevTr->nx = curTr->nx;
  37.                         }
  38.                         else
  39.                         {
  40.                             Finder->tr = Finder->tr->nx;
  41.                         }
  42.                         prevTr = curTr;
  43.                         curTr = curTr->nx;
  44.                         delete t;
  45.                     }
  46.                     else
  47.                     {
  48.                         prevTr = curTr;
  49.                         curTr = curTr->nx;
  50.                     }
  51.                 }
  52.                 Finder = Finder->nx;
  53.             }
  54.             delete tmp;
  55.         }
  56.         else
  57.         {
  58.             prevLD = curentLD;
  59.             curentLD = curentLD->nx;
  60.         }
  61.  
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement