Реализовать структуру данных «очередь строк» в виде класса - 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];
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы