Деревья и их представление в STL Презентацию подготовила Чиркова Ольга, 2 подгруппа, группа 271ПИ.

Slides:



Advertisements
Similar presentations
ЗАРЯДКА НА АНГЛИЙСКОМ ЯЗЫКЕ.  Зарядка на уроке английского языка может стать самым любимым и веселым занятием для детей, при том, что она проходит исключительно.
Advertisements

Астрометрические каталоги К.В.Куимов, ГАИШ МГУ. Определение астрометрического каталога Астрометрический каталог – понятие неопределённое. Например, это.
Linguistic tools Лекция 5. ПОИСКОВЫЕ СИСТЕМЫ: предыстория Библейские индексы и конкордансы 1247 – Hugo de St. Caro – было задействовано 500 монахов для.
Расторгуев А.C., 545 группа Научный руководитель: Пименов А.А. Рецензент: ст. преп. Смирнова Е.А.
Системы отбора. Условные обозначения (1) (2) (3) (4) (5) (6) (7) Математическое моделирование процессов отбора2.
Алгоритм приближённого join’а на потоках данных Выполнил : Юра Землянский, 445 группа Научный руководитель : Б.А. Новиков СПб, 2011 Санкт-Петербургский.
ЛОМОНОСОВ И МАТЕМАТИКА. Большое значение Ломоносов придавал математике, рекомендуя широко применять математические методы в других науках. Математику,
R1R2R3R4R5R6R7R1R2R3R4R5R6R7. Аксиома R 1. В пространстве существуют плоскости. В каждой плоскости пространства выполняются все аксиомы планиметрии.
Тел. (495) Москва, а/я 212 Рабочая группа по реформе МВД Москва, 2010 Новикова Асмик, Фонд «Общественный вердикт»
Тушин Александр, ЗАО «Компания Либэр». 1) Предоставление полнотекстовых материалов 2) Поиск по внутреннему содержанию документа 3) Доступность в режиме.
Некомпенсаторное агрегирование и рейтингование студентов Авторы: Гончаров Алексей Александрович, Чистяков Вячеслав Васильевич. НФ ГУ ВШЭ 2010 год.
ПРИНЦИПЫ РАЗРАБОТКИ СИСТЕМЫ КЛАССА LEARNING MANAGEMENT SYSTEM И ОПЫТ ЕЕ ИСПОЛЬЗОВАНИЯ НА ФАКУЛЬТЕТЕ МЕНЕДЖМЕНТА Афанасьева С.В. Кафедра бизнес-информатики.
Всевоволод Головизнин, MVC – паттерн проектирование, в котором бизнес - логика, управляющая логика и интерфейс разделены на три отдельных компонента.
Стресс и здоровье Презентация Нефёдовой Евгении Николаевны, классного руководителя 9 «Б» класса МОУ СОШ № 30 города Энгельса Саратовской области 2010 год.
Bank ownership and lending behavior Alejandro Micco, Ugo Panizza Politicians and banks: Political influences on government-owned banks in emerging markets.
Определение необходимого уровня запасов на складе.
Учитель математики Кулакова Т.М. МОУ ООШ №15 г.о Новокуйбышевск Самарской области Сентябрь 2011г.
ЭЛЕКТРОННЫЙ ХРОНОМЕТРАЖ Докладчики : Чуранов В. Л. ( Вологда ) Цапилов Н. В. ( Рыбинск )
Что за хулиган толкает пассажиров автобуса то вперед, то назад? Этот хулиган, вернее, хулиганка -
Скриптовые языки на примере Perl. Языки программирования Скриптовые Программа (или ее бай-код) интерпретируется Зачастую более высокий уровень абстрагирования.
ООП Классы – 2. Ссылки Ссылка – еще одно имя объекта. Используйте ссылки вместо указателя. Это более безопасно. Complex c(10,10); Complex c2& = c; c2+=10;
Функции IV. Биоинформатические ресурсы для работы с мембранными белками А.Б.Рахманинова (3 и 4 апреля 2007г.)
Блок 3. Семейства белков I. Множественное выравнивание Первый курс, весна 2008, А.Б.Рахманинова.
Язык JavaScript Скриптовый язык для выполнения на html-страницах.
To the Solution of a Bilinear Optimal Control Problem with State Constrains by the Doubled-Variations Method E.A. Rovenskaya Lomonosov Moscow State University,
Решение задач на движение
1 Генерация контекстных ограничений для баз данных Выполнил: Жолудев В. Научный руководитель: Терехов А.Н. Рецензент: Иванов А.Н.
Введение в параллельные вычисления. Технология программирования MPI (день седьмой) Антонов Александр Сергеевич, к.ф.-м.н., н.с. лаборатории Параллельных.
Михаил Налётов Активные продажи на сайте. Может ли ваш сайт работать еще эффективнее?
Введение в параллельные вычисления. Технология программирования MPI (день третий) Антонов Александр Сергеевич, к.ф.-м.н., н.с. лаборатории Параллельных.
Основы цифровой обработки речевых сигналов. Общая схема процесса речеобразования x[n] – дискретные отсчеты сигнала возбуждения y[n] – дискретные отсчеты.
ГРАФЫ ИХ ПРЕДСТАВЛЕНИЕ В STL u Отделение программной инженерии группа 271 ПИ Антонова Н. А.
Growing Neural Gas Method Нейросетевой метод построения неструктурированных адаптивных сеток.
Алгоритмы сортировки и поиска
Сравнение различных методов хранения XML в реляционных базах данных и в разных системах. Нгуен Тхань Хуен- 545 группа Руководитель : Б.А. Новиков Рецензент:
PHP как язык программирования. Типы данных логические величины int, integer – целые числа real, double, float – вещественные числа string – строки array.
Деревья курс «Алгоритмы и структуры данных» Отделение Программной инженерии.
"The European Molecular Biology Open Software Suite"
Рекурсивные структуры данных Списки, двоичные деревья.
Контейнеры. Сортировка  Метод sort()  Интерфейс Comparable метод int compareTo(Object o) вызов: Arrays.sort(a)  Интерфейс Comparator метод int compare(Object.
1 Влияние машинной архитектуры Структура и принципы работы компьютера На разрабатываемый язык программирования машинная архитектура влияет двояко: –непосредственно.
ВЫЧИСЛЕНИЕ В ЛИСПЕ Функциональное программирование Григорьева И.В.
Увеличение модульности программного обеспечения на языке Java Курсовая работа студента 345 группы Абишева Тимура Маратовича Научный руководитель: Профессор.
Реализация XPath над S-выражениями 2007 Миленин Евгений, гр. 544 Кафедра Системного Программирования Математико-Механический ф-т, СПбГУ Научный руководитель:
Применение генетических алгоритмов к генерации тестов для автоматных программ Законов Андрей Юрьевич Научный руководитель: Степанов Олег Георгиевич, к.т.н.,
Маршрут, цепь, цикл Маршрутом называют последовательность вершин и ребер, в которой любые два соседних элемента инцидентны (т.е. соединены). Например:
Методы анализа данных. Статистическая проверка гипотез.
Формы в HTML. Элемент FORM Элемент уровня «блок» Управляющие элементы Просто текст Атрибуты: action – url обработчика method – post или get enctype –
Деревья (trees) «…великое Дерево Жизни заполняет земную кору своими мертвыми и сломанными ветвями и покрывает поверхность вечно ветвящимися и прекрасными.
ВВЕДЕНИЕ В ВЫЧИСЛИТЕЛЬНУЮ МАТЕМАТИКУ Лекция 5 6 октября 2009 ВЫЧИСЛИТЕЛЬНАЯ ЛИНЕЙНАЯ АЛГЕБРА.
 Функция общественного благосостояния: (1.7) Здесь все γ i >0  Бюджетное ограничение общества выглядит как: (1.8)  Общественная целевая функция: (1.9)
Тема 8. «Векторы на плоскости и в пространстве»
Множественное выравнивание С.А.Спирин, весна
Классификация, кластеризация и поиск изображений на основе низкоуровневых характеристик Наталья Васильева Руководитель: Новиков Б. А.
XML Схемы XML документов. XML Schema созданая Microsoft позволяет избавиться от DTD блоков. Основа – использование пространств имен и очень точная типизация.
«Отгадай символы Рождества»
Microsoft TechDayshttp:// Александр Шаповал Эксперт по стратегическим технологиям
Microsoft TechDayshttp:// Александр Шаповал Эксперт по стратегическим технологиям
Board Games. KnowWant to knowLearnt jigsawpuzzle adominoesyrw cfeukoloased hdscrabbleja eetashiefyjr sfmarblesaet sokbilliards ybackgammonu.
Алгебра логики это раздел математики, изучающий высказывания, рассматриваемые со стороны их логических значений (истинности или ложности) и логических.
Microsoft Developer Tour Технологическая экспедиция msdevtour.ru.
Провизорные органы амниот. Теоретические вопросы эмбриологии.
Применение графического метода для решения различных математических задач Учитель гимназии №3 Шахова Т. А.
Welcome Travelling to English Land Rules. ABCDEFG Board Game.
«Центр Разработки и Внедрения Террасофт Поволжье»
Jokes Jokes Jokes Teacher: Where's your text book? Student: At home. Teacher: What's it doing there? Student: Having a.
SDL TRADOS 2006 Сокращение затрат и удвоение производительности: лингвистические технологии на основе баз данных от ведущей компании.
November CTP Андрей Коршиков MCP-клуб, Краснодар Декабрь 2009.
* Любой табак кроме WTO Депозит берется в течение 20 мин, как подошли все гости* В депозит входят все позиции в меню* Депозит не возвращается*
Presentation transcript:

Деревья и их представление в STL Презентацию подготовила Чиркова Ольга, 2 подгруппа, группа 271ПИ

Что такое дерево? Дерево – это структура данных, позволяющая выполнять операции вставки, удаления, поиска элементов за нелинейное время

Только одна вершина дерева не имеет предков – корень. Все вершины, кроме корня, имеют единственного предка. Вершины, не имеющие детей – листья. Высота дерева – наибольшее число вершин от листа до корня. Из любой вершины можно добраться до корня, последовательно перебираясь от одной вершины к ее предку, единственным путем. Основные понятия:

Примеры деревьев: Файловая система; Иерархия в организациях (начальник - подчиненные); Генеалогическое дерево.

По максимальному количеству детей каждой вершины деревья делятся на: Деревья (в общем) Вершины имеют любое количество потомков М-арные деревья Вершины имеют строго ограниченное количество потомков (бинарные, тернарные деревья)

Двоичные деревья Двоичное дерево – это M-арное дерево, у которого M=2. Куча (heap) – дерево, содержащее элементы либо в порядке убывания, либо в порядке возрастания.

Кучи Max-heap Значение в любой вершине больше, чем значения ее потомков Min-heap Значение в любой вершине меньше, чем значения ее потомков

Деревья двоичного поиска Дерево двоичного поиска – это двоичное дерево, с каждым из узлов которого связан ключ, причем: у всех узлов правого поддерева произвольного узла n значение ключей не меньше, нежели значения ключа узла n. у всех узлов левого поддерева произвольного узла n значение ключей меньше, нежели значения ключа узла n.

Несбалансированные деревья бинарного поиска (unbalanced) Это такие деревья, высота правого и левого поддеревьев которых отличаются более, чем на 1. Дерево двоичного поиска становится несбалансированным, когда в него постоянно добавляются элементы большего или меньшего размера

Неполные деревья двоичного поиска (incomplete) Каждый узел дерева двоичного поиска должен содержать более 2 детей. Но он может иметь 1 или не иметь детей. Если в дереве есть такие хотя бы один такой узел, дерево называют неполным.

Использование деревьев двоичного поиска Дерево двоичного поиска может быть использовано для реализации таких абстракций, как множество, словарь (набор соответствий "ключ-значение"), очередь с приоритетами и так далее.

Использование деревьев двоичного поиска Далее рассмотрим контейнеры STL, основанные на деревьях и приведем примеры работы с ними. Ассоциативные контейнеры обеспечивают быстрый доступ к данным за счет того, что они, как правило, построены на основе сбалансированных деревьев поиска.

Использование деревьев двоичного поиска Пояснения на следующем слайде

Поиск значений в двоичном дереве поиска реализован рекурсивно. Процедура принимает на вход вершину. Сравнивает ее значение с искомым: в случае равенства, искомое значение найдено, иначе – рекурсивно перемещаемся в корень соответствующего поддерева: либо большего, либо меньшего. Если же нужного поддерева нет, то искомое значение не содержится в дереве. Использование деревьев двоичного поиска

Использование STL Множество (set) Множество (set) – это ассоциативный контейнер, содержащий только значения ключей. Значения ключей уникальны. Повторяющиеся элементы не заносятся в множество. Элементы множества хранятся отсортированными

Работа со множествами Объявление объектов класса set: Добавление элементов во множество с помощью функции insert

Работа с множествами Узнаем количество элементов множества с помощью функции size: Поиск элемента множества, с помощью функции find:

Алгоритмы работы с множествами Ассоциативные контейнеры могут использоваться в сочетании c алгоритмами работы со множествами.

Алгоритмы работы со множествами (STL) АлгоритмВыполняемая функция set_intersectionСоздает отсортированное перечисление множеств (то есть множество, содержащее только элементы, входящие и в первое, и во второе множество) set_unionСоздает отсортированное объединение множеств (то есть множество, содержащее элементы первого и второго множества без повторов) set_differenceСоздает отсортированную последовательность элементов, входящих только в первую из двух последовательностей. set_symmetric_ difference Создает отсортированную последовательность элементов, входящих только в одну из двух последовательностей. Результирующая последовательность не должна перекрываться ни с одной из исходных

Пример использования алгоритмов работы со множествами

Использование STL Словарь (map) Словарь map – это ассоциативный массив, построенный на основе пар значений: - ключ для идентификации элемента - собственно элемент Значения ключей уникальны (кроме multimap) Элементы в словаре хранятся отсортированными

Работа со словарем Объявление объектов класса map: Вставка элементов с помощью функции insert

Работа со словарем Более быстрый способ вставки элемента с помощью операции [ ] : Доступ к элементам по ключу с помощью операции [ ]: Просмотр элеметов с помощью итератеров

В очереди с приоритетами каждому элементу соответствует приоритет, определяющий порядок выборки из очереди. По умолчанию он определяется с помощью операции <. То есть из очереди каждый раз выбирается максимальный элемент. Использование STL Очереди с приоритетами (priority_queue)

Пример использования очереди с приоритетами

Библиотека STL позволяет в качестве функций сравнения использовать пользовательские функции либо классы.

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

Стандартные классы просто так в состав С++ не добавляются. Г. Шилдт