Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- const int N=10;
- typedef struct Queue{
- int data[10]; //массив данных
- int first; //указатель на начало
- int last; //указатель на конец
- }Queue;
- Queue Q; //сама очередь, как глобальная переменная
- void Creation(Queue *Q) //создание очереди
- {
- Q->first=Q->last=1;
- }
- void Add(Queue *Q) //добавление элемента
- {
- int value;
- printf("\nЗначение > ");
- scanf("%d",&value);
- if ((Q->last%(N-1))+1==Q->first)
- printf("\nОчередь заполнена\n\n");
- else
- {
- Q->data[Q->last]=value;
- Q->last=(Q->last%(N-1))+1;
- printf("Элемент добавлен в очередь\n\n");
- }
- }
- void Delete(Queue *Q) //удаление элемента
- {
- Q->first=(Q->first%(N-1))+1;
- printf("Элемент удален из очереди\n\n");
- }
- int Top(Queue *Q) //вывод начального элемента
- {
- return Q->data[Q->first];
- }
- int Size(Queue *Q) //размер очереди
- {
- if (Q->first>Q->last) return (N-1)-(Q->first-Q->last);
- else return Q->last-Q->first;
- }
- int main(void) //главная функция
- {
- Creation(&Q); // создание очереди
- int i;
- for(i=0;i<5;i++) { Add(&Q); printf("size - %d\n",Size(&Q));} //добавление 5-ти элементов в очередь
- for(i=0;i<2;i++) { Delete(&Q); printf("top - %d\n",Top(&Q)); printf("size - %d\n",Size(&Q)); }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement