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

Добавление элемента в очередь

Читайте также:
  1. RS-триггеры на логических элементах
  2. Абсолютная полнота элемента леса
  3. Алгоритм вставки элемента в список после элемента с указанным ключом
  4. Алгоритм удаления элемента в списке по ключу
  5. Атрибуты элемента BODY.
  6. Бухгалтерские проводки на затраты хозяйствующего субъекта по экономическим элементам
  7. Возраст древостоя элемента леса
  8. Вопрос 5. Какие ресурсные ограничения моделей общей задачи линейного программирования должны анализироваться в первую очередь?
  9. Вопрос35. Предел Функции в точке и на бесконечности. Геометрическая иллюстрация определений. Предел постоянной. Предел суммы, частного, произведения. Предел элементарных функций.
  10. Вставка нового элемента
  11. Выделил социально-экономический класс в качестве главного элемента социальной структуры обществаК. Маркс
  12. Группировка затрат по экономическим элементам (смета затрат на производство)

Рассмотрим алгоритм добавления только для второго элемента.

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);

}

¼


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 сек.)