Скачиваний:
14
Добавлен:
18.03.2018
Размер:
1.19 Кб
Скачать
#include <iostream>
#include <cstdlib>

#define MAXLENGTH 10
typedef int DataType;
class Queue
{
   int front, rear; //индексы головы и хвоста
   DataType data[MAXLENGTH]; //массив для хранения элементов
 public:
   Queue () {front=0; rear=MAXLENGTH-1;}
   int Empty (void); //проверка на пустоту
   int Full (void); //проверка на полноту заполнения
   DataType Front (void); //неразрушающее чтение элемента
   int EnQueue (DataType x); //добавление элемента в очередь
   DataType DeQueue (void); //извлечение элемента из очереди
};

int main (void)
{
    Queue q;
    int i;
   	for (i=1; i<6; i++)
		q.EnQueue (i);
    while (!q.Empty())
		std::cout<<q.DeQueue()<<' ';
	system("pause");
	return 0;
}

int Queue::Empty(void)
{
   return (rear+1)%MAXLENGTH == front;
}

int Queue::Full(void)
{
   return (rear+2)%MAXLENGTH == front;
}

DataType Queue::Front (void)
{
   return data[front];
}

int Queue::EnQueue (DataType x)
{
   if (Full()) return 0;
   rear = (rear+1)%MAXLENGTH;
   data[rear] = x;
   return 1;
}

DataType Queue::DeQueue (void)
{
   int temp = front;
   front = (front+1)%MAXLENGTH;
   return data[temp];
}
Соседние файлы в папке Очередь