Назад к основам – обобщенные структуры данных и алгоритмы в .NET 2.0

ОГЛАВЛЕНИЕ

С момента первого выпуска .NET было желание написать собственную коллекцию структур данных и алгоритмов. Это попытка предоставить многоразовую, обобщенную коллекцию структур данных и алгоритмов для применения в .NET 2.0 и выше.

•    Скачать исходники - 265.8 Кб (с тестами NUnit)
•    Скачать двоичные файлы - 40.5 Кб
•    Домашняя страница проекта NGenerics (CodePlex)

Статья не дает все подробности и полные описания внутреннего устройства этих коллекций и алгоритмов - наоборот, она дает ссылки на имеющиеся в интернете ресурсы (нет смысла пытаться обойти Википедию) и сообщает любопытные особенности данной конкретной реализации.

Справка

Каркас .NET вырос в очень богатый каркас. Он предоставляет множество продуманных интерфейсов и классов, но пренебрегает множеством структур данных и алгоритмов, имеющих важное значение в области информатики. Данная библиотека старается предоставить этот отсутствующий функционал и расширить каркас .NET.

Обзор

Сейчас реализованы следующие структуры данных и алгоритмы:

Новые структуры данных

Расширенные структуры данных

Алгоритмы сортировки

Алгоритмы на графах

Association<TKey, TValue>

VisitableHashTable<TKey, TValue>

пузырьковая сортировка

алгоритм поиска кратчайшего пути одиночного источника Дейкстры

Bag<T>

VisitableLinkedList<T>

блочная сортировка

алгоритм минимального связывающего дерева Прима

BinaryTree<T>

VisitableList<T>

коктейльная сортировка

 

BinarySearchTree<TKey, TValue>

VisitableQueue<T>

сортировка гребнем

Математические алгоритмы

Deque<T>

VisitableStack<T>

гномья сортировка

генерация чисел Фибоначчи.

GeneralTree<T>

 

древовидная сортировка

алгоритм Евклида

Graph<T>

 

сортировка вставкой

 

Heap<T>

 

сортировка слиянием

 

Matrix

 

сортировка переносом четный- нечетный

 

PascalSet

 

быстрая сортировка

 

PriorityQueue<T>

 

сортировка выбором

 

SkipList<TKey, TValue>

 

сортировка перемешиванием

 

SortedList<T>

 

сортировка методом Шелла

 

SortedList<T>

 

сортировка методом Шелла

 

RedBlackTree<T>

     

ReadOnlyPropertyCollection <T, TProperty>

     

ObjectMatrix<T>

     

HashList<TKey, TValue>

     

 

Читайте также:
  • Манипулирование цветами в .NET – часть первая
    • Скачать демонстрационный проект (.NET 1.1) - 58.8 Кб• Скачать исходники C# (.NET 1.1) - 110.0 Кб• Скачать исходники C# (.NET 2.0) - 111.2 Кб• Скачать исходники VB (.NET 2.0) - 115.7 Кб Введение Почему статья о "цветах"? На самом деле, в .NET, можно использовать только два формата цвета: цвет...
  • Определение цен барьерных опционов с помощью сеток. Часть первая – постоянные барьеры
    •    Скачать демонстрационный проект - 5.26 Кб•    Скачать исходники - 12.2 Кб Введение Стоит отметить, что представленный метод можно расширить до вмещения опционов с несколькими постоянными барьерами. После изучения простого примера перейдем к более сложным опционам с изменяющимися во времени ...
  • FuzzyAdvisor – простая экспертная система с нечеткой логикой на F#
    •    Скачать исходники - 108 Кб Введение Более 15 лет назад разрабатывали проект (Brulé и др., 1995), требовавший экспертную систему, выбирающую подходящий вариант исходя из некоторых основных параметров. Были опробованы несколько подходов, в том числе использование исчисления предикатов (...
  • Нейронные сети на C#
    •    Скачать исходники - 251 Кб•    Скачать демонстрационный проект - 181 Кб Введение История нейронных сетей начинается в 1950-х гг., когда была представлена архитектура простейших нейронных сетей. После начальной работы в области идея нейронных сетей стала весьма популярной. Но затем область...
  • Генетические алгоритмы в задачах классификации искусственных нейронных сетей
    •    Скачать демо - 99.6 Кб•    Скачать исходники - 25.2 Кб Введение Природа предоставляет присущие ей методы для решения задач оптимизации, называемые генетическими алгоритмами. Живые организмы эволюционируют, адаптируются к меняющимся условиям, спариваются и производят индивидуумов, еще боле...