Третья задача по си++

Задача №3. Шаблоны.

Литература:

  • 1. Страуструп Б. Язык программирования C++ (стр. 377-407)
  • 2. Вандервуд Д. Шаблоны С++. Справочник разработчика.

Реализовать шаблон класса (функции), принимающий элементы любого типа и поддерживающий базовые операции в соответствии со своим назначением. В качестве внутренней структуры хранения данных можно использовать, например, динамический массив. Использование шаблона должно осуществляться из функции main() и содержать примеры работы как минимум с двумя разными типами данных (например, int и string).

  • 1. Односвязный циклический список (кольцо).
  • 2. Двусвязный список.
  • 3. Бинарное дерево.
  • 4. Красно-черное дерево.
  • 5. Направленный граф.
  • 6. Очередь.
  • 7. Дек (deque, допускает вставку и удаление с обоих концов очереди).
  • 8. Ассоциативный массив (поддерживающий key и value произвольных типов).
  • 9. Множество (с поддержкой операций сложения и вычитания множеств).
  • 10. Шаблон функции быстрой сортировки qsort(), принимающий критерий сравнения в виде аргумента шаблона.