Зациклить очередь (полностью использовать место во внутреннем массиве) - C#
Формулировка задачи:
Есть у кого идеи , как ее можно зациклить ?
using System;
namespace queue111
{
class Queue
{
int[] que;
int head;
int counter;
public Queue(int size)
{
que= new int [size];
head=0;
counter = 0;
}
public void Push(int elem)
{
if (counter == que.Length)
{
Console.WriteLine("Очередь заполнена");
return;
}
que[counter] = elem;
counter++;
}
public int Pop()
{
if (counter==0)
{
Console.WriteLine("Очередь пуста");
return -1;
}
int elem = que[head];
head++;
return elem;
}
public bool IsEmpty()
{
return counter == head;
}
public int Peek()
{
return que[head];
}
}
class QueueDemo {
static void Main()
{
Queue que1 = new Queue(10);
que1.Push(3);
que1.Push(9);
que1.Push(5);
que1.Push(3);
que1.Push(9);
Console.WriteLine("Вершина очереди:");
Console.WriteLine(que1.Peek());
Console.WriteLine(); Console.WriteLine();
Console.WriteLine("Сама очередь");
while (!que1.IsEmpty())
{
Console.WriteLine(que1.Pop());
}
}
}
}Решение задачи: «Зациклить очередь (полностью использовать место во внутреннем массиве)»
textual
Листинг программы
while (!que1.IsEmpty())
{
Console.WriteLine(que1.Pop());
}