Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Подразделы

Другие разделы

Дата и время

29/03/2025 07:15:18

Авторизация

Имя:
Пароль:
Зарегистрироваться
Восстановить пароль
 

printЗадания

printСеместровое задание



Абстрактный тип данных (АТД) — это математическая модель для типов данных, где тип данных определяется поведением (семантикой) с точки зрения пользователя данных, а именно в терминах возможных значений, возможных операций над данными этого типа и поведения этих операций.
Конкретные реализации АТД называются структурами данных. В С++ структуры данных реализуются как классы. В задаче 3 необходимо определить АТД, не нужно писать реализацию класса С++!

Последовательный доступ к данным выполняется через for и может быть реализован через итераторы (собственные типы - АТД, не STL) или доступ по номеру (если порядок хранения данных является важным как в АТД Массив)

4. Предложите структуры данных для представления АТД из задания 3. Перечислите поля, их типы и комментарии к каждому полю. Укажите оценку эффективности (амортизированную или среднюю) для каждого метода с учетом использованных структур данных. Хранимая в структуре информация не должна дублироваться.

Это отдельная задача. Не объединяете с задачей 3! Не пишите реализацию методов, нужно указать только оценку эффективности.







10. Определить АТД Полином, обеспечивающий метод calc для вычисления значения полинома в точке x (используйте схему Горнера или барицентрическую форму интерполяционного многочлена Лагранжа).


11. Определить АТД Разреженная матрица, обеспечивающий метод get(i,j) для получения элемента матрицы и set(i,j,v) для изменения (добавления) ненулевого элемента. В конструкторе задаются размеры матрицы.

Примерные реализации сложения и умножения матриц в лекции.


12. Определить АТД Матрица, обеспечивающий метод [i,j] для доступа к элементам матрицы. В конструкторе задаются размеры матрицы.


13. Используя поиск в глубину, определите число компонент связности в графе, задаваемом следующим образом:




Для решения этой задачи не нужно писать код, нужно:
1) указать количество вершин и ребер в графе
2) написать оценки эффективности O(...) для сравниваемых алгоритмов
3) сравнить эти оценки для верхних ограничений и указать меньшую
Это называется в математике "обоснованием выбора".








Для точки использовать класс из лекций и его методы.


Для точки использовать класс из лекций и его методы.



loading