Днес мисля да постна малко чист C# код, а именно имплементация на структурата от данни двойно-свързан списък.
Node<T> класът
Да започнем с Node<T> класът или иначе казано какви обекти ще има нашият DoubleLinkedList.
public class DoubleLinkedList<T>
Единствените полета, които са ни нужни в класа + пропъртито Size, което ни връща големината на нашата структура, конструктурът не представлява нищо особено:
Прибавяне на елемент в началото и в края на списъка
В началото на списъка:
В края на списъка:
Индексиране
Естествено, бихме искали да можем да достъпваме нашите елементи в списъка по индекс – нещо, което не е възможно при обикновения свързан списък. Ето как изглежда и кода:
Използваме и два метода, които сме си написали, които сме изнесли в такива, за да си спестим по-нататъчно писане на един и същ код, което не спазва конвенциите за Качествен програмен код. Ето ги и тях:
и остана да реализираме вмъкване на елемент на определена позиция:
InsertAt метод
Actually…where is the code?!
Тъй като приложих самия код на картинки, а никъде не описах някакъв тестов клас, който да провери действието на нашата структура, ето и линкове към кода на DoubleLinkedList класа и тестовия клас.