Реализовать структуру данных «очередь строк» в виде класса - C#
Формулировка задачи:
Реализовать структуру данных «очередь строк» в виде класса (набора классов). Стандартные классы-коллекции .NET не использовать, в качестве внутренней структуры для хранения данных использовать исключительно массивы.
PS Помогите. Я не совсем понимаю что от меня хотят!
Нужно сделать на шарпе в виде консольного приложения.
Решение задачи: «Реализовать структуру данных «очередь строк» в виде класса»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FIFO
{
class Program
{
static void Main(string[] args)
{
try
{
Queue q1 = new Queue();
q1.Add(4);
q1.Add(5);
Console.WriteLine("The front is now {0}", q1.Head());
q1.Add(6);
Console.WriteLine("Removing from q1 returns {0}", q1.Remove());
Console.WriteLine("Queue 1 has size {0}", q1.size);
Console.WriteLine("Queue 1 empty? {0}", q1.IsEmpty());
q1.Remove();
Console.WriteLine("Throws exception before we get here");
}
catch (Exception e)
{
Console.WriteLine(e);
}
Console.ReadKey();
}
public class Queue
{
private string[] data;
public int size;
private int front = -1;
private int back = 0;
private int count = 0;
public Queue()
{
size = 10;
data = new string[size];
}
public Queue(int size)
{
this.size = size;
data = new string[size];
}
public bool IsEmpty()
{
return count == 0;
}
public bool IsFull()
{
return count == size;
}
public void Add(int i)
{
if (IsFull())
throw new ApplicationException("Очередь заполнена");
else
{
count++;
data[back++ % size] = Convert.ToString(i);
}
}
public string Remove()
{
if (IsEmpty())
throw new ApplicationException("Очередь пуста");
else
{
count--;
return data[++front % size];
}
}
public string Head()
{
if (IsEmpty())
{
throw new ApplicationException("Очередь пуста");
}
else
return data[(front + 1) % size];
}
}
}
}