Добавил:
FluffyUnicorn
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Структуры данных примеры / Очередь / queue_mas
.c#include <stdlib.h>
#include <stdio.h>
#define MAXLENGTH 10
typedef int DataType;
typedef struct Queue
{
int front, rear;
DataType data[MAXLENGTH];
} Queue;
void MakeNull (Queue *pqueue);
int Empty (Queue *pqueue);
int Full (Queue *pqueue);
DataType Front (Queue *pqueue);
int EnQueue (DataType x, Queue *pqueue);
DataType DeQueue (Queue *pqueue);
int main()
{
Queue queue;
int i;
MakeNull(&queue);
for (i=1; i<6; i++)
EnQueue (i, &queue);
while (!Empty(&queue))
printf("%d ",DeQueue (&queue));
system("pause");
return 0;
}
void MakeNull (Queue *pqueue)
{
pqueue->front = 0;
pqueue->rear = MAXLENGTH-1;
}
int Empty(Queue *pqueue)
{
return (pqueue->rear+1)%MAXLENGTH == pqueue->front;
}
int Full(Queue *pqueue)
{
return (pqueue->rear+2)%MAXLENGTH == pqueue->front;
}
int Front (Queue *pqueue)
{
return pqueue->data[pqueue->front];
}
int EnQueue (DataType x, Queue *pqueue)
{
if (Full(pqueue)) return 0;
pqueue->rear = (pqueue->rear+1)%MAXLENGTH;
pqueue->data[pqueue->rear] = x;
return 1;
}
DataType DeQueue (Queue *pqueue)
{
int temp = pqueue->front;
pqueue->front = (pqueue->front+1)%MAXLENGTH;
return pqueue->data[temp];
}
Соседние файлы в папке Очередь