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

Удаление элемента из очереди

Читайте также:
  1. В очереди
  2. Графики основных элементарных функций
  3. Добавление нового элемента в очередь
  4. Запрос на удаление данных или команда DELETE
  5. К Базовым элементам корпоративной культуры
  6. К группировке затрат по экономическим элементам ОТНОСЯТСЯ затраты на
  7. Клетка как элементарная единица живого.
  8. Множество, элементами которого являются другие множества, называется КЛАССОМ или СЕМЕЙСТВОМ.
  9. Наиболее существенные задачи, музыки как элемента экранной образности.
  10. Определение максимальных напряжений в элементах конструкции пути.
  11. Повторяющиеся компоненты терминов, обладающие определенным значением, называются терминоэлементами (ТЭ).
  12. Рассечение и обзор полости черепа. Удаление и исследование головного мозга.

Функция удаления элемента из очереди аналогична функции удаления из стека:

void del (QUEUE **pbeg)

{

QUEUE *old_item = *pbeg;

if(*pbeg)

{

*pbeg =(*pbeg)->next;

free(old_item);

}

}

Пример. Пусть из очереди, состоящей из трех элементов (‘a’,’b’,’c’), необходимо удалить элемент ‘b’. В этом случае необходимо удалить элемент из середины очереди.

Функция удаления элемента из середины очереди:

 

void del_mid(QUEUE **pbeg) { QUEUE *current = *pbeg; QUEUE *previous = 0; while(current->info!=’b’) { previous = current;   current = current->next; } previous->next = current->next;     free(current); } //*pbeg – указатель на первый элемент очереди //текущий элемент очереди //предыдущий элемент очереди //пока поле info текущего элемента не содержит символ ‘b’ //указатель previous указывает на тот же элемент, что и указатель current //перемещение указателя current на следующий по отношению к текущиму элемент //следующим после предыдущего элемента становится следующий по отношению к текущему элемент //уничтожаем элемент current

 

На рис. 9 показано происходящее после каждого шага изменения.

Рис. 9 – Удаление элемента из середины очереди


1 | 2 | 3 | 4 | 5 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)