На CodeProject опубликована статья: Back to basics - Generic Data Structures and Algorithms In .NET 2.0, содержащая подборку различных алгоритмов и структур данных.
Реализовано и готово для повторного использования следующее:
Association - класс, клонирующий функциональность стандартного KeyValuePair<TKey, TValue>, но с возможностью раздельно устанавливать Key и Value.
- Bag - структура данных для хранения произвольного количества элементов, подобна множеству, но допускающая одинаковые элементы. Реализована с помощью Dictionary<T, int>
.
BinaryTree<T> - реализациядвоичного дерева.
- Deque
- двусвязная очередь.
- GeneralTree<T>
- деревья.
- Vertex<T>, Edge<T>, Graph<T>
- классы для построения графов.
- Heap
- куча.
Matrix - реализация
с поддержкой операций.матриц
- PascalSet - реализация
математического множества с операциями.
- PriorityQueue<T> - приоритетная очередь.
- SortedList<T> - аналог SortedList<TKey, TValue>, за исключением:
- поддерживается хранение повторяющихся элементов (оригинальный не позволяет);
- элементы сортируются по собственному значению, не требуя ключа.
VisitableHashtable<Tkey, TValue>, VisitableLinkedList<T>, VisitableList<T>, VisitableQueue<T>, VisitableStack<T> - различные реализации интерфейса IVisitableCollection<T>
Реализованы паттерны:
Singleton
иVisitor
Методы сортировки:
BubbleSorter, GnomeSorter, HeapSorter, InsertionSorter, SelectionSorter, MergeSorter, QuickSorter, ShellSorter, BucketSorter
Автор обещает развивать библиотеку и дальше.
Не пропустите сайт
Bruno R. Preiss, на котором представлены реализации фундаментальных структур данных на различных языках программирования: C#, C++, Java, Python, Ruby, Lua, Perl, PHP и текст его книги Data Structures and Algorithms with Object-Oriented Design Patterns
Blogus tags : Алгоритмы,.NET
Комментариев пока нет
Отправить комментарий