Шаг 35.
Добавление звена в начало дека

    На этом шаге мы рассмотрим алгоритм добавления звена в начало дека.

    Алгоритм добавления звена в начало дека заключается в создании из кучи нового элемента и настройки указателя начала дека на новый элемент:

    q = new(node);
    (*q).elem = Элем;
    (*q).sled = nd;      (*q).pred = NULL;
    (*nd).pred = q;      nd = q;


Рис.1. Вставка звена в начало дека

    Приведем текст функции:

void InsLeft (node **nd, node **kd,int el)
// Вставка звена, содержащего элемент el, в дек слева.
// *nd - указатель на начало дека.
// *kd - указатель на конец дека.
{
  node *q;

  q = new(node);
  (*q).elem = el;
  if (*nd==NULL)
    { // Если дек пуст, то...
      *nd = q; (*q).sled = (*q).pred = NULL; *kd = q;}
  else
    { (*q).sled = *nd; (*q).pred = NULL; (**nd).pred = q; *nd = q;}
}

    На следующем шаге мы рассмотрим алгоритм добавления звена в дек справа.




Предыдущий шаг Содержание Следующий шаг