- •3. Ооп. Методы, перегрузка, переопределение.
- •4. Ооп. Полиморфизм.
- •5. Методы класса. Конструкторы. Виды конструкторов. Статические методы и поля.
- •6. Понятие сложности алгоритма. Типовые виды алгоритмической сложности.
- •7. Исключения (try, catch, finally).
- •8. Интерфейсы, применение предназначения.
- •9. Generic типы.
- •10. Ограничения Generic типов.
- •11. Структуры данных. Динамический массив.
- •12. Структуры данных. Список.
- •13. Структуры данных. Двунаправленный список.
- •14. Структуры данных. Хеш-таблица.
- •15. Структуры данных. Стек.
- •16. Структуры данных. Очередь.
- •17. Коллекции в c#, описать какие структуры данных реализуют.
- •18. Матрицы преобразований.
- •19. Основы теории графов, что это такое, применение.
- •20. Граф. Способы задания графа.
20. Граф. Способы задания графа.
Теория графов.
Эвристический алгоритм – не дает правильного решения для 100% случаев, но дает очень хорошее решение в большинстве случаев.
Волновой алгоритм - … для невзвешенных графов.
Алгоритм - эвристический тип(вид) для невзвешенных графов.
Граф – набор вершин, соединенные ребрами.
Ориентировочный граф – граф, для вершин которого задано направление движения.
Взвешенный граф – граф, для вершин которого задан вес
Область применения – графы применяются в географии(карты дорог, оптимизация маршрутов), в поиске гипертексте, микросхемах, соц. сетях, составлении расписаний.
Концевая вершина – вершина на которой заканчивается ребро.
Смежные ребра- ребра имеющие общую вершину.
Кратные ребра – это ребра, концевая вершина которых совпадает.
Способы задания графа
Матрица смежности
Матрица инциденций
Список ребер (пар)
Список соседних вершин
Какой способ лучше?
матрица смежности: лучше для графов, близких к полносвязным
матрица инцидентности: неоптимальна
список пар: лучше для графов с большим числом пропусков (почти все реальные графы с числом вершин > 20)
Задачи:
поиск пути
поиск кратчайшего пути
определение оптимальных вершин