Додавання елемента в чергу

Розглянемо алгоритм додавання тільки для другого елементу.

1. Введення інформації для поточного (другого) елемента - значення i.

2. Захоплюємо пам'ять під поточний елемент:

t = (Spis *) malloc (sizeof (Spis)); або t = new Spis;

3. Формуємо інформаційну частину (позначимо i 2):

t -> Next = NULL;

колишній останній елемент стає передостаннім.

6. Переставляємо покажчик останнього елемента на доданий:

В результаті отримаємо

Для додавання в чергу будь-якої кількості елементів організовується цикл, що включає пункти 1 6 розглянутого алгоритму. Завершення циклу реалізується в залежності від поставленого завдання.

Узагальнимо розглянуті етапи, тоді функція формування черги з даних оголошеного типу з додаванням нових елементів в кінець може мати наступний вигляд:

void Create (Spis ** begin, Spis ** end)

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

printf ( "\ n Input Info");

scanf ( ".", t -> info);

t -> Next = NULL;

if (* begin == NULL) // Формування першого елемента

(* End) -> Next = t; // Додавання в кінець

Ділянка програми зі зверненням до функції Create для додавання необхідної кількості елементів в чергу може мати наступний вигляд:

Spis * begin = NULL, * end;

while (repeat)

printf ( "Stop - 0"); // repeat = 0 - кінець введення даних

Схожі статті