Структуры данных и коллекции в C#
В рубрике описаны способы хранения и организации данных: массивы и списки, связные списки, стеки и очереди, двоичные деревья, хеш-таблицы и словари. Для каждой структуры показано, как она устроена, как реализуется на C# с нуля и какие готовые классы предлагает .NET.
Читайте в таком порядке: линейные структуры, затем ассоциативные, затем деревья. К каждой теме есть сравнение скорости добавления, поиска и удаления, которое помогает выбрать подходящий тип коллекции для конкретной задачи.
Очередь Queue<T> в C#: методы и примерыКак работает очередь Queue<T> в C#: принцип FIFO, методы Enqueue, Dequeue, Peek, TryDequeue, PriorityQueue и примеры с обходом графа в ширину.
Список List<T> в C#: полное руководствоКак создать List<T> в C#, добавлять, удалять, искать и сортировать элементы, чем он отличается от массива. Разбор Capacity и примеры кода.
Словарь Dictionary в C#: полное руководствоDictionary в C# с примерами: создание и инициализация, Add и TryAdd, TryGetValue, перебор, удаление, сложность и потокобезопасный ConcurrentDictionary.
Стек в C#: основы, примеры и практикаКак работать со стеком в C#: класс Stack<T>, методы Push, Pop и Peek, собственная реализация на массиве, типичные задачи и рекомендации по применению.
Бинарные деревья в C#: код и разбор операцийКак реализовать бинарное дерево поиска на C#: вставка, поиск, удаление, обходы in-order и в ширину, высота, сложность и готовые SortedSet.
Структура данных граф в C#Как хранить граф в C#: списки и матрица смежности, обход в ширину и глубину, поиск пути, цикл и топологическая сортировка с кодом.