Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //4. Построен список графа с указателем LD.
- //Удалить вершины, не имеющие исходящих дуг.
- //Адрес этой вершины в списках Trailer заменить на NULL.
- void DeleteVertsWithZeroCount(Leader *&LD)
- {
- Leader *curentLD = LD;
- Leader *prevLD = nullptr;
- while (curentLD)
- {
- if (!curentLD->tr)
- {
- Leader *tmp = curentLD;
- if (prevLD)
- {
- prevLD->nx = curentLD->nx;
- }
- else
- {
- LD = LD->nx;
- }
- prevLD = curentLD;
- curentLD = curentLD->nx;
- Leader *Finder = LD;
- while (Finder)
- {
- Trailer *curTr = Finder->tr;
- Trailer *prevTr = nullptr;
- while (curTr)
- {
- if (curTr->ld == tmp)
- {
- Trailer *t = curTr;
- if (prevTr)
- {
- prevTr->nx = curTr->nx;
- }
- else
- {
- Finder->tr = Finder->tr->nx;
- }
- prevTr = curTr;
- curTr = curTr->nx;
- delete t;
- }
- else
- {
- prevTr = curTr;
- curTr = curTr->nx;
- }
- }
- Finder = Finder->nx;
- }
- delete tmp;
- }
- else
- {
- prevLD = curentLD;
- curentLD = curentLD->nx;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement