Практикум по курсу "Алгоритмизация и программирование". Часть 2. Андрианова А.А - 61 стр.

UptoLike

. Практикум по курсу «Алгоритмизация и программирование». Часть 2
// удаление всех элементов с заданным значением,
// расположенных в начале списка
while(head!=NULL && head->info==key)
{
help=head;
head=head->next;
delete help;
}
if(head!=NULL)
{
current=head;
// поиск и удаление элементов с заданным значени-
// ем, расположенных в середине или в конце списка
while(current->next!=NULL)
{
help=current->next;
if(help->info==key)
{
current->next=help->next;
delete help;
}
else
current=current->next;
}
}
}
Задача 4. Дан односвязный список. Написать функцию удаления всех
элементов списка.
В переменной head будет храниться адрес текущего элемента. Чтобы не
потерять «хвост» списка, надо сохранять адрес следующего элемента в пере-
менной help. Удалив текущий элемент, в переменную head записываем зна-
чение из help. Эти действия осуществляются до тех пор, пока список не ста-
нет пустым.
// определение функции уничтожения списка
void DestroyList(List* head)
{
List*help;
while(head!=NULL)
{
help=head->next;
delete head;
61
            .       Практикум по курсу «Алгоритмизация и программирование». Часть 2
          // удаление всех элементов с заданным значением,
          // расположенных в начале списка
          while(head!=NULL && head->info==key)
          {
               help=head;
               head=head->next;
               delete help;
          }

          if(head!=NULL)
          {
               current=head;
               // поиск и удаление элементов с заданным значени-
               // ем, расположенных в середине или в конце списка
               while(current->next!=NULL)
               {
                    help=current->next;
                    if(help->info==key)
                    {
                         current->next=help->next;
                         delete help;
                    }
                    else
                         current=current->next;
               }
          }
   }


    Задача 4. Дан односвязный список. Написать функцию удаления всех
элементов списка.
    В переменной head будет храниться адрес текущего элемента. Чтобы не
потерять «хвост» списка, надо сохранять адрес следующего элемента в пере-
менной help. Удалив текущий элемент, в переменную head записываем зна-
чение из help. Эти действия осуществляются до тех пор, пока список не ста-
нет пустым.
   // определение функции уничтожения списка
   void DestroyList(List* head)
   {
         List*help;
         while(head!=NULL)
         {
              help=head->next;
              delete head;

                                      61