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

UptoLike

А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
L.tail=current->prev;
// устанавливаем признак достижения
// конца списка
f=false;
}
else help2->prev=help1;
// двигаясь в обратном порядке от предыдущего
// положения current, определяем место
// вставки current
while(help1!=L.head &&
help1->info>current->info)
help1=help1->prev;
// вставка элемента current
if(help1->info>current->info)
{
// в начало списка
help1->prev=current;
current->next=help1;
L.head=current;
}
else
{
// в середину упорядоченной части списка
help3=help1->next;
help3->prev=current;
current->next=help3;
current->prev=help1;
help1->next=current;
}
// продолжаем просмотр неупорядоченной части
// списка
current=help2;
}
else
{
// если список просмотрен и current стоит
// на своем месте устанавливаем признак
// достижения конца списка
if(current==L.tail) f=false;
// переход к следующему элементу
current=current->next;
}
}
}
86
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова                       .
                                L.tail=current->prev;
                               // устанавливаем признак достижения
                               // конца списка
                               f=false;
                          }
                          else help2->prev=help1;
                          // двигаясь в обратном порядке от предыдущего
                          // положения current, определяем место
                          // вставки current
                          while(help1!=L.head &&
                                         help1->info>current->info)
                               help1=help1->prev;
                          // вставка элемента current
                          if(help1->info>current->info)
                          {
                               // в начало списка
                               help1->prev=current;
                               current->next=help1;
                               L.head=current;
                          }
                          else
                          {
                               // в середину упорядоченной части списка
                               help3=help1->next;
                               help3->prev=current;
                               current->next=help3;
                               current->prev=help1;
                               help1->next=current;
                          }
                          // продолжаем просмотр неупорядоченной части
                          // списка
                          current=help2;
                   }
                   else
                   {
                          // если список просмотрен и current стоит
                          // на своем месте устанавливаем признак
                          // достижения конца списка
                          if(current==L.tail) f=false;
                          // переход к следующему элементу
                          current=current->next;
                   }
            }
    }



                                            86