Алгоритмы и структуры данных Зайцев Валентин Евгеньевич.

Презентация:



Advertisements
Похожие презентации
Дерево это связный ациклический граф. Связность означает наличие путей между любой парой вершин, ацикличность отсутствие циклов и то, что между парами.
Advertisements

Деревья1 Структуры и алгоритмы обработки данных, 1 Лекция 5 ДЕРЕВЬЯ 1.Определения дерева, леса, бинарного дерева. Скобочное представление 2.Спецификация.
Необхідність структурування даних. Послідовне і зв ' язне розподілення даних в пам ' яті ЕОМ. Статичні і динамічні структури даних.
Двоичные деревья поиска. Очередь с приоритетами Федор Царев Спецкурс «Олимпиадное программирование» Лекция , Санкт-Петербург, Гимназия.
Занятие 10. Символьная регрессия Краткое содержание Понятие символьной регрессии Синтаксические деревья и обратная польская запись Понятие генетического.
Формирование универсальных учебных действий на уроках информатики Босова Людмила Леонидовна
1. Теория множеств. Операции над множествами. Диаграммы Эйлера – Венна. Соответствие между множествами. Примеры.
Моделирование как метод познания. Модели Модель – это объект, который используется для представления другого объекта (оригинала) с определенной целью.
Деревья, преобразование выражений Лекция 11. Время, затрачиваемое алгоритмом, как функция от размера задачи, называется временной сложностью. Поведение.
Даталогическое проектирование. 1. Представление концептуальной модели средствами модели данных СУБД Общие представления о моделях данных СУБД С одной.
Деревья и их представление в STL Презентацию подготовила Чиркова Ольга, 2 подгруппа, группа 271ПИ.
Моделирование и исследование мехатронных систем Курс лекций.
1 БАЗЫ ДАННЫХ СТРУКТУРЫ ДАННЫХ. 2 МОДЕЛИ СТРУКТУР ДАННЫХ Линейная структура (списки и кольца) Линейная структура (списки и кольца) Иерархическая структура.
Моделирование и формализация : Моделирование. Моделирование – это метод познания, состоящий в создании и исследовании моделей. Модель.
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 3.
Основы информатики и программирования 1 курс экономический факультет 1 курс экономический факультет.
Лекция 3 Лекция 3 Методологические основы БД. Типология свойств и связей объекта. Многоуровневые модели предметной области. Идентификация объектов и записей.
Теория систем и системный анализ Тема4 «Системный анализ: методы системного анализа »
Задание бинарных деревьев с помощью массивов Обходы деревьев.
Структуры и алгоритмы компьютерной обработки данных Представление дисциплины.
Транксрипт:

Алгоритмы и структуры данных Зайцев Валентин Евгеньевич

АиСД: фундаментальное алгоритмическое введение A1 Деревья. Типичные примеры применения деревьев: задачи искусственного интеллекта и синтаксического анализа. Рекурсивное определение дерева. Конструктивное поуровневое построение. Нелинейность рекурсии. Противопоставление рекурсивному определению линейных структур. Теоретико-множественный и топологический подходы к определению деревьев. Деревья общего вида (сильноветвящиеся). Особенности генеалогических, династических и турнирных деревьев. Визуализация деревьев: графовая, диаграммы Эйлера-Венна, иерархические скобочные структуры, многоуровневая ступенчатая запись. Пример текстового описания дерева на LaTeX (макропакет PSTricks). Матрицы смежности и инциденций. Натурное моделирование (каркасно-проволочные модели). Терминология деревьев общего вида: элементы (узлы, вершины), степень узла и дерева, листы и внутренние (нетерминальные) вершины, уровень узла (рекурсивное определение), глубина вершины и дерева (рекурсивное определение), отец-сын, предок-потомок, братья, дочерняя вершина, страшинство сыновей.

АиСД: фундаментальное алгоритмическое введение A2 Двоичные деревья. Определение. Отличия двоичных деревьев и деревьев общего вида. Особенности визуализации двоичных деревьев. Причины частого использования двоичных деревьев: простота хранения и обработки. Выражения. Примеры из арифметики, логики, информатики. Нелинейность и рекурсивность выражений. Деревья выражений. Фон Неймановская причина их бинарности. Бесскобочность представления выражений деревьями. Фон Неймановская нежелательность скобочных структур. Преобразование деревьев общего вида в двоичные деревья. Идея и илюстрация. Рекурсивный алгоритм с построением каскада сыновей. Обратное преобразование. Доказательство индукцией по глубине дерева. Концептуальное значение алгоритма как конструктивного доказательства эквивалентности двух подходов к определению деревьев. Функциональная спецификация двоичного дерева. Соотношения и их свойства. Логическое описание двоичного дерева. Причины отсутствия стандартных реализаций деревьев в STL. Альтернативы: Лисп, Пролог, динамические структуры на фон Неймановских языках программирования.

АиСД: фундаментальное алгоритмическое введение A3 Описание типа данных для реализации двоичных деревьев на динамических структурах. Графическая иллюстрация. Алгоритмы обработки деревьев. Понятие обхода дерева. Важность обхода для нелинейных структур. Рекурсивные алгоритмы обхода двоичных деревьев: прямой обход, обратный обход, концевой обход. Псевдокод. Графическая иллюстрация. Нерекурсивный обход: использование стека для отражения текущего положения в дереве. Сравнение с рекурсивным алгоритмом. Пример программы нерекурсивного обхода. Построение и визуализация дерева. Псевдокод. Трудности ввода. Распечатка дерева: ASCII-визуализация с отступами. Деревья выражений. Разнофиксные формы записи выражений: префиксная, инфиксная, постфиксная и их связь с обходами деревьев выражений. Фон Неймановские преимущества бесскобочной записи. Пример: псевдокод программы построения и распечатки дерева выражения по его линейной скобочной (инфиксной записи). Особенности примера: упрощённые арифметические выражения, рекурсивно-итеративная интерпретация при удалении распечатанного дерева. Полурекурсивная версия: сочетание рекурсивного спуска направо с итеративной обработкой слева.

АиСД: фундаментальное алгоритмическое введение A4 Реализация парсера по грамматике. Другой пример: преобразование выражения из инфиксной формы в постфиксную. Нерекурсивная версия. Особенности представления и обхода деревьев общего вида. Поиск в глубину и поиск в ширину. Псевдокод. Деревья поиска. Идея. Логарифмическая оценка времени поиска. Псевдокод. Упрощение поиска с помощью барьерного элемента. Гамак как вариант терминированного представления дерева. Недостаток барьерного метода: усложнение более редких процедур вставки и удаления. Поиск по дереву с включениями. Псевдокод. Дерево поиска для предыдущего примера. Модификация схемы хранения для одинаковых элементов. Соблюдение хронологии. Характерный пример: составление таблицы перекрёстных ссылок слов текста. Исключение из деревьев поиска. Случаи различного вида вершин: терминальная, внутренняя с одним или с двумя потомками. Процедура удаления с рекурсивным спуском вдоль правой ветви левого поддерева. Сложностные оценки вставки и удаления. Их ухудшение при разбалансировке дерева. Крайний случай. Сравнение средней и оптимальной оценок.

АиСД: фундаментальное алгоритмическое введение A5 Сбалансированные деревья. Идея AVL-метода. AVL-деревья. Сложностные оценки: худший случай невозможен! Оправданность затрат на балансировку при частых операциях поиска и редких – включения и удаления. Включение в сбалансированное дерево. Графическая иллюстрация. Исключение из сбалансированного дерева. Графическая иллюстрация. Понятие о деревьях оптимального поиска. Физическое представление деревьев. Отображение на массив турнирного дерева. Достоинства (простота и быстрота) и недостатки (трудоёмкость поиска, вставки и удаления). Прошивка деревьев. Итеративный обход. Итераторы. Графы. Определения. Терминология. Матричные представления. Алгоритм Уоршалла. Представление плексами. Примеры алгоритмов на графах: поиск в глубину, поиск в ширину.

Конец лекции 10