Шаг 6.
Операции над списками с заглавным звеном. Включение звена (1-й случай)

    На этом шаге мы рассмотрим первый случай включения звена в список.

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

    Предположим, что имеется однонаправленный список с заглавным звеном, и необходимо вставить звено с заданным информационным полем после звена, на которое указывает ссылка Res. Вставка звена осуществляется по следующему алгоритму.

  1. В куче резервируется место для динамического объекта:
        q = new (node);
    


    Рис.1. Зарезервировали место под элемент списка

  2. В информационное поле этого объекта помещается значение элемента, который необходимо вставить:
        (*q).elem = el;
    


    Рис.2. Заполнение информационного поля

  3. В поле указателя помещается адрес элемента, следующего за звеном, на которое указывает Res:
        (*q).sled = (*Res).sled;
    


    Рис.3. Заполнение поля указателя вставляемого элемента

  4. И, наконец, после выполнения оператора
        (*Res).sled = q;
    
    получаем результат, изображенный на следующей схеме:


    Рис.4. Изменение указателя у предыдущего элемента

    Алгоритм оформим в виде функции.

void VSTAV (node **Res, int el)
// Включение звена  с  информационным полем  el 
//после звена, на которое указывает ссылка *Res.
{
  node *q;
  q = new (node);
  (*q).elem = el; (*q).sled = (**Res).sled;
  (**Res).sled = q;
}

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




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