понедельник, 11 декабря 2006 г.

Generic Data Structures and Algorithms in .NET2.0

На 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>, за исключением:
    • поддерживается хранение повторяющихся элементов (оригинальный не позволяет);
    • элементы сортируются по собственному значению, не требуя ключа.

Автор обещает развивать библиотеку и дальше.

Не пропустите сайт Bruno R. Preiss, на котором представлены реализации фундаментальных структур данных на различных языках программирования: C#, C++, Java, Python, Ruby, Lua, Perl, PHP и текст его книги Data Structures and Algorithms with Object-Oriented Design Patterns

Technorati tags: ,
Blogus tags : ,

Комментариев пока нет