АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Алгоритм вставки элемента в список после элемента с указанным ключом

Читайте также:
  1. ESC-последовательности
  2. RS-триггеры на логических элементах
  3. XII. ЭЛЕМЕНТЫ ТЕОРИИ АЛГОРИТМОВ
  4. А) преодоление культа личности Сталина и его последствий
  5. А. Механизмы творчества с точки зрения З. Фрейда и его последователей
  6. Абсолютная полнота элемента леса
  7. Абсолютно неупругий удар. Абсолютно упругий удар. Скорости шаров после абсолютно упругого центрального удара.
  8. Алгоритм
  9. Алгоритм MD4
  10. Алгоритм RC6
  11. Алгоритм RSA
  12. Алгоритм Брезенхема для окружности

Вставить в список элемент после элемента, значение информационной части (ключ) которого совпадает со значением, введенным с клавиатуры.

Решение данной задачи проводится в два этапа – поиск и вставка.

Первый этап аналогичен рассмотренному в алгоритме удаления, а второй проводится только при условии, что искомый элемент найден, т.е. указатель на него key не равен NULL.

Этап второй вставка

1. Захватываем память под новый элемент

t = (Spis*) malloc(sizeof(Spis));

2. Формируем информационную часть:

scanf(“%d”, &t -> info);

3. Связываем новый элемент с предыдущим

t -> Prev = key;

4. Связываем новый элемент со следующим

t -> Next = key -> Next;

5. Связываем предыдущий элемент с новым

key -> Next = t;

6. Если элемент добавляется не в конец списка (как показано на схеме ниже), т.е. key != end, то

( t -> Next ) -> Prev = t;

7. Иначе, если key = end, то указатель key->Next равен NULL (в п. 4 установлено окончание списка) и новым последним становится t

end = t;

Общая схема вставки элемента:

 

 

Алгоритм освобождения памяти, занятой списком,аналогичен рассмотренному алгоритму для стека (см. разд. 15.2).

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 |


При использовании материала, поставите ссылку на Студалл.Орг (0.005 сек.)