|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Алгоритм вставки элемента в список после элемента с указанным ключомВставить в список элемент после элемента, значение информационной части (ключ) которого совпадает со значением, введенным с клавиатуры. Решение данной задачи проводится в два этапа – поиск и вставка. Первый этап аналогичен рассмотренному в алгоритме удаления, а второй проводится только при условии, что искомый элемент найден, т.е. указатель на него 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).
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |