В односвязном списке вставить элемент после заданного элемента списка - Pascal

Узнай цену своей работы

Формулировка задачи:

В односвязном списке вставить элемент после n-го элемента списка.

Решение задачи: «В односвязном списке вставить элемент после заданного элемента списка»

textual
Листинг программы
. . .
cur := first; index := 1;
while index < n do
  begin
    cur := cur^.next;
    inc(index);
  end;
tmp := cur^.next;
New(cur^.next);
cur := cur^.next;
cur^.value := value;
cur^.next := tmp;
. . .

Объяснение кода листинга программы

В данном коде происходит вставка элемента в односвязный список.

  1. cur := first; — указываем начальную позицию в списке (первый элемент).
  2. index := 1; — счётчик индекса элемента, начиная с 1.
  3. while index < n do — цикл, выполняющийся до тех пор, пока индекс не станет равным размеру списка.
  4. cur := cur^.next; — переходим к следующему элементу списка.
  5. inc(index); — увеличиваем значение счётчика на 1.
  6. tmp := cur^.next; — сохраняем ссылку на следующий элемент, так как будем его менять.
  7. New(cur^.next); — выделяем память под новый элемент в списке.
  8. cur := cur^.next; — переходим к новому (вставленному) элементу списка.
  9. cur^.value := value; — присваиваем значение новому элементу списка.
  10. cur^.next := tmp; — соединяем новый элемент со старым, через ссылку на следующий элемент. . . .

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы