Назад к основам – обобщенные структуры данных и алгоритмы в .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> |