项目作者: YauheniZmitrovich

项目描述 :
Fibonacci numbers, set, matrices, binary search tree
高级语言: C#
项目地址: git://github.com/YauheniZmitrovich/NET.S.2017.Zmitrovich.14.git


NET.S.2017.Zmitrovich.14

1) Реализовать метод для генерации последовательности чисел Фибоначчи с использованием блок-итератора yield.
2) Разработать обобщенный класс-коллекцию Set, позволяющий работать только с переменными ссылочного типа с семантикой сравнения по значению, реализующий основные операции над множествами и предоставляющий возможность перечисления элементов коллекции. Протестировать методы разработанного класса.
3) Создать обобщенные классы для представления квадратной, симметрической и диагональной матриц (симметрическая матрица – это квадратная матрица, которая совпадает с транспонированной к ней; диагональная матрица – это квадратная матрица, у которой элементы вне главной диагонали заведомо имеют значения по умолчанию типа элемента). Описать в созданных классах событие, которое происходит при изменении элемента матрицы с индексами (i, j). Предусмотреть возможность расширения функциональности для иерархии классов, добавив возможность операции сложения двух матриц любого типа. Разработать unit-тесты.
4) Разработать обобщенный класс-коллекцию BinarySearchTree (бинарное дерево поиска).
Предусмотреть возможности использования подключаемого интерфейса для реализации отношения порядка.
Реализовать три способа обхода дерева: прямой (preorder), поперечный (inorder), обратный (postorder):
для реализации использовать блок-итератор (yield). Протестировать разработанный класс, используя следующие типы:

  • System.Int32 (использовать сравнение по умолчанию и подключаемый компаратор);
  • System.String (использовать сравнение по умолчанию и подключаемый компаратор);
  • пользовательский класс Book, для объектов которого реализовано отношения порядка (использовать сравнение по умолчанию и подключаемый компаратор);
  • пользовательскую структуру Point, для объектов которого не реализовано отношения порядка (использовать подключаемый компаратор).