|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Добавление элемента в очередьРассмотрим алгоритм добавления только для второго элемента. 1. Ввод информации для текущего (второго) элемента – значение i. 2. Захватываем память под текущий элемент: t = (Spis*) malloc (sizeof(Spis)); или t = new Spis; 3. Формируем информационную часть (обозначим i 2): t -> info = i; 4. В адресную часть созданного элемента (текущего) заносим NULL, т.к. этот элемент становится последним: t -> Next = NULL; 5. Элемент добавляется в конец очереди, поэтому в адресную часть бывшего последнего элемента end заносим адрес созданного: end -> Next = t; бывший последний элемент становится предпоследним. 6. Переставляем указатель последнего элемента на добавленный: end = t; В результате получим Для добавления в очередь любого количества элементов организуется цикл, включающий пункты 1– 6 рассмотренного алгоритма. Завершение цикла реализуется в зависимости от поставленной задачи. Обобщим рассмотренные этапы, тогда функция формирования очереди из данных объявленного типа с добавлением новых элементов в конец может иметь следующий вид: void Create(Spis **begin, Spis **end) { Spis *t = (Spis*) malloc(sizeof(Spis)); printf(“\n Input Info ”); scanf(“%d”, &t -> info); t -> Next = NULL; if(*begin == NULL) // Формирование первого элемента *begin = *end = t; else { (*end) -> Next = t; // Добавление в конец *end = t; } } Участок программы с обращением к функции Create для добавление необходимого количества элементов в очередь может иметь следующий вид: ¼ Spis *begin = NULL, *end; int repeat = 1; while(repeat) { // repeat=1 – продолжение ввода данных Create(&begin, &end); printf(“ Stop - 0 ”); // repeat=0 – конец ввода данных scanf(“%d”, &repeat); } ¼ Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |