Курсовая работа: Списки стеки очереди в C
The queue is:
A --> В --> Z -->NULL
? 2
A has been dequeued.
The queue is:
B --> Z --> NULL
? 2
В has been dequeued.
The queue is:
Z --> NULL
? 2
Z has been dequeued.
Queue is empty.
? 2
Queue is empty.
? 4
Invalid choice.
Enter your choice:
1 to add an item to the queue
2 to remove an item from the queue
3 to end ? 3
End of run.
Функція enqueue одержує від main три аргументи: адресe вказівника на голову черги, адресу вказівника на хвіст черги й значення, яке необхідно поставити в чергу. Виконання функції складається із трьох кроків:
1) Створення нового вузла: викликати new, присвоїти адреса виділеного блоку пам'яті newPtr, присвоїти newPtr->data значення, що необхідно поставити в чергу, a newPtr->nextPtr присвоїти NULL.
2) Якщо черга порожня, присвоїти *headPtr покажчик newPtr; в іншому випадку присвоїти цей покажчик (*tailPtr)->nextPtr.
3) І нарешті, присвоїти *tailPtr покажчик newPtr.
Функція dequeue отримує в якості аргументів адрес вказівника на голову черги і адрес вказівника хвоста і видаляє перший вузол черги. Виконання dequeue відбувається наступним чином:
1. Змінній value привласнюється значення (*headPtr)->data (зберегти дані);
2. Присвоїти вказівнику tempPtr значення *headPtr (tempPtr використовується для звільнення вільної пам’яті).