Настало время взять клавиатуру в руки и написать что-нибудь серьезное. Шучу, конечно. На этот раз речь пойдет о такой структуре данных, как очередь.
Очередь - структура данных, которая устроена таким образом, что данные добавляются всегда в начало, а удаляются с конца. Иными словами, это тип данных, построенный по принципу ПЕРВЫЙ ПРИШЕЛ - ПОСЛЕДНИЙ УШЕЛ (FIFO - FIRST IN, FIRST OUT).
Звучит, может быть, заумно, но реализация достаточно тривиальна. И так, засучив рукава и налив кружечку чая, начнем-с...
Нам потребуются методы, позволяющие добавлять элемент, удалять элемент из очереди, а так же реализуем очень полезные методы, позволяющие получить последний элемент и общее количество элементов в очереди.
Реализация будет производиться на языке C#, будем использовать ArrayList, поэтому не забудьте подключить пространство имен System.Collections. Конструктор будет выглядеть достаточно аскетично, так как будет служить лишь одной цели: созданию объекта ArrayList. Сразу приведем его код:
private ArrayList queue;
public Queue()
{
this.queue = new ArrayList();
}
Дальше - круче. Реализуем методы для добавления и удаления элементов. Не будем изобретать велосипед и воспользуемся стандартными методами, которые любезно предоставит нам класс ArrayList:
public void AddElement(object element)
{
this.queue.Add(element);
}
public void RemoveElement()
{
this.queue.RemoveAt(0);
}
Теперь, немного отдохнув от столь напряженного дикого кодинга, займемся реализацией методов, расширяющих функционал нашего класса.
//для получения первого элемента в очереди
public object GetFirstElement()
{
return this.queue[0];
}
//для получения последнего элемента очереди
public object GetLastElement()
{
return this.queue[queue.Count - 1];
}
//для получения общего количества элементов в очереди
public int Count()
{
return this.queue.Count;
}
Как вы могли уже заметить, мы нагло эксплуатируем класс ArrayList и его методы. Если бы реализовывали бы данный класс при помощи обычных массивов, то было бы немного посложнее.
Напоследок,приведем весь код нашей очереди:
using System;
using System.Collections;
namespace Queue
{
public class Queue
{
private ArrayList queue;
public Queue()
{
this.queue = new ArrayList();
}
public void AddElement(object element)
{
this.queue.Add(element);
}
public void RemoveElement()
{
this.queue.RemoveAt(0);
}
public object GetFirstElement()
{
return this.queue[0];
}
public object GetLastElement()
{
return this.queue[queue.Count - 1];
}
public int Count()
{
return this.queue.Count;
}
}
}
Очередь - структура данных, которая устроена таким образом, что данные добавляются всегда в начало, а удаляются с конца. Иными словами, это тип данных, построенный по принципу ПЕРВЫЙ ПРИШЕЛ - ПОСЛЕДНИЙ УШЕЛ (FIFO - FIRST IN, FIRST OUT).
Звучит, может быть, заумно, но реализация достаточно тривиальна. И так, засучив рукава и налив кружечку чая, начнем-с...
Нам потребуются методы, позволяющие добавлять элемент, удалять элемент из очереди, а так же реализуем очень полезные методы, позволяющие получить последний элемент и общее количество элементов в очереди.
Реализация будет производиться на языке C#, будем использовать ArrayList, поэтому не забудьте подключить пространство имен System.Collections. Конструктор будет выглядеть достаточно аскетично, так как будет служить лишь одной цели: созданию объекта ArrayList. Сразу приведем его код:
private ArrayList queue;
public Queue()
{
this.queue = new ArrayList();
}
Дальше - круче. Реализуем методы для добавления и удаления элементов. Не будем изобретать велосипед и воспользуемся стандартными методами, которые любезно предоставит нам класс ArrayList:
public void AddElement(object element)
{
this.queue.Add(element);
}
public void RemoveElement()
{
this.queue.RemoveAt(0);
}
Теперь, немного отдохнув от столь напряженного дикого кодинга, займемся реализацией методов, расширяющих функционал нашего класса.
//для получения первого элемента в очереди
public object GetFirstElement()
{
return this.queue[0];
}
//для получения последнего элемента очереди
public object GetLastElement()
{
return this.queue[queue.Count - 1];
}
//для получения общего количества элементов в очереди
public int Count()
{
return this.queue.Count;
}
Как вы могли уже заметить, мы нагло эксплуатируем класс ArrayList и его методы. Если бы реализовывали бы данный класс при помощи обычных массивов, то было бы немного посложнее.
Напоследок,приведем весь код нашей очереди:
using System;
using System.Collections;
namespace Queue
{
public class Queue
{
private ArrayList queue;
public Queue()
{
this.queue = new ArrayList();
}
public void AddElement(object element)
{
this.queue.Add(element);
}
public void RemoveElement()
{
this.queue.RemoveAt(0);
}
public object GetFirstElement()
{
return this.queue[0];
}
public object GetLastElement()
{
return this.queue[queue.Count - 1];
}
public int Count()
{
return this.queue.Count;
}
}
}
Комментариев нет:
Отправить комментарий