На 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
Комментариев пока нет
Отправить комментарий