Queue :
Разработать обобщенный класс-коллекцию Queue, реализующий основные операции для работы с очередью, а также предоставляющий возможность итерирования, реализовав итератор «вручную» (без использования блок-итератора yield).
Set :
Разработать обобщенный класс-коллекцию Set, позволяющий работать только с переменными ссылочного типа с семантикой сравнения по значению, реализующий основные операции над множествами и предоставляющий возможность перечисления элементов коллекции. Протестировать методы разработанного класса.
BiTree :
Разработать обобщенный класс-коллекцию BinarySearchTree (бинарное дерево поиска). Предусмотреть возможности использования подключаемого интерфейса для реализации отношения порядка. Реализовать три способа обхода дерева: прямой (preorder), поперечный (inorder), обратный (postorder): для реализации использовать блок-итератор (yield). Протестировать разработанный класс, используя следующие типы:
-
System.Int32 (использовать сравнение по умолчанию и подключаемый компаратор);
-
System.String (использовать сравнение по умолчанию и подключаемый компаратор);
-
пользовательский класс Book, для объектов которого реализовано отношения порядка (использовать сравнение по умолчанию и подключаемый компаратор);
-
пользовательскую структуру Point, для объектов которого не реализовано отношения порядка (использовать подключаемый компаратор).