Дървета. Калин Георгиев. 20 октомври 2016 г. Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 1 / 35
|
|
- Silva Hadzhieva
- преди 2 години
- Прегледи:
Препис
1 Дървета Калин Георгиев 20 октомври 2016 г. Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 1 / 35
2 Интуиция Интуиция. Йерархична структура от данни Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 2 / 35
3 Интуиция Фамилно дърво баща ниво (етаж) 0 син 1 син 2 ниво 1 внук 1 внук 2 внук 3 ниво 2 правнук 1 ниво 3 Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 3 / 35
4 Интуиция Фамилно дърво родител, наследник корен листо път ниво баща ниво (етаж) 0 син 1 син 2 ниво 1 внук 1 внук 2 внук 3 ниво 2 правнук 1 ниво 3 Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 4 / 35
5 Интуиция Decision Tree мъж Мъж или жена под 18 години? под 18 години? Barbie Харесва ли Поп музика Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 5 / 35 Спортува ли? да Плакат на Metallica Лакове и червила харесва ли Star Wars? харесва ли Star Wars? Въже за скачане да не не да Лазерен меч Количка с дистанционно Щанга Робот BB-8
6 Интуиция Формална дефиниция и абстракция Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 6 / 35
7 Дефиниция Дефиниции Свързан неориентиран граф без цикли Индуктивна дефиниция Фиксираме елемент () / D и го наричаме празно дърво Празното дърво е дърво Ако L T и R T са дървета, а x е елемент (x D), то тройката (структурата) T = (x, L T, R T ) наричаме двоично дърво T с корен x, ляво поддърво L T и дясно поддърво R T. x Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 7 / 35
8 Дефиниция Дърво с числа Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 8 / 35
9 Дефиниция Двоично наредено дърво 50 < < < < X Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 9 / 35
10 Представяне и операции Представяне Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 10 / 35
11 Представяне и операции Тройна кутия Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 11 / 35
12 Представяне и операции Операции Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 12 / 35
13 Представяне и операции Добавяне на елемент Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 13 / 35
14 Представяне и операции Следа. Добавяне и намиране на елемент L R L LRL LRR Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 14 / 35
15 Представяне и операции Рекурсивни операции Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 15 / 35
16 Представяне и операции Търсене на елемент Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 16 / 35
17 Представяне и операции Проверка за принадлежност Среща ли се елементът y сред елементите на дървото T? Празното дърво е дърво Ако L T и R T са дървета, а x е елемент (x D), то тройката (структурата) T = (x, L T, R T ) наричаме двоично дърво T с корен x, ляво поддърво L T и дясно поддърво R T. L T x R T bool member (int y, T): Ако дървото е празно, то y не е елемент на дървото. return false Ако T = (x, L T, R T ) е непразно, то y е елемент на T, ако y == x или y е елемент на L T или y е елемент на R T. return y==root(t) member (y, LT) member (y,rt) Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 17 / 35
18 Представяне и операции Сума не елементите Каква е сумата на елементите на дървото? Празното дърво е дърво Ако L T и R T са дървета, а x е елемент (x D), то тройката (структурата) T = (x, L T, R T ) наричаме двоично дърво T с корен x, ляво поддърво L T и дясно поддърво R T. x S L T S R T x int sum (T): Ако дървото е празно, то сумата на елементите е 0. return 0 Ако T = (x, L T, R T ) е непразно, то сумата на елементите е сбора на сумата на елементите на L T, на сумата на елементите на R T и на числото x. return root(t) + sum (LT) + sum (RT) Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 18 / 35
19 Представяне и операции Други прости рекурсивни операции Най-голям елемент в дървото Брой на елементитите в дървото Височина на дървото Брой на листата в дървото Празното дърво е дърво Ако L T и R T са дървета, а x е елемент (x D), то тройката (структурата) T = (x, L T, R T ) наричаме двоично дърво T с корен x, ляво поддърво L T и дясно поддърво R T. x?? F L T F R T x Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 19 / 35
20 Представяне и операции x Сериализация Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 20 / 35
21 Двоични наредени дървета Операции с двоични наредени дървета Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 21 / 35
22 Двоични наредени дървета Вмъкване Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 22 / 35
23 Двоични наредени дървета Намиране на най-голям и най-малък елемент x y Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 23 / 35
24 Двоични наредени дървета Изтриване x < < y z Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 24 / 35
25 Двоични наредени дървета Изтриване x < < y z Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 25 / 35
26 Двоични наредени дървета Изтриване z < < y Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 26 / 35
27 Обхождания Обхождане с рекурсия VS. обхождане чрез стек Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 27 / 35
28 Обхождания Отпечатване Отпечатване с рекурсия void print (t){ if ( empty (t)) return ; print ( left (t )); cout << root (t); print ( right (t )); } Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 28 / 35
29 Обхождания Прецес на отпечатване print (T 50 ) print (left(t 50 ));cout << root (T 50 ); print (right(t 50 )) print (left(t 30 ));cout << root (T 30 ); print (right(t 30 )) 30 print (left(t 20 ));cout << root (T 20 ); print (right(t 20 )) Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 29 / 35
30 Обхождания Прецес на отпечатване print (T 50 ) p(t 50 ) print (left(t 50 ));cout << root (T 50 ); print (right(t 50 )) p(t 30 ) p(t 50 ):<<50;p(T 90 ) print (left(t 30 ));cout << root (T 30 ); print (right(t 30 )) p(t 20 ) p(t 30 ):<<30;p(T 45 ) p(t 50 ):<<50;p(T 90 ) 30 print (left(t 20 ));cout << root (T 20 ); print (right(t 20 )) Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 30 / 35
31 Обхождания Отпечатване чрез стек Отпечатване с рекурсия void print (t){ if ( empty (t)) return ; print ( left (t )); cout << root (t); print ( right (t )); } void print (t){ stack. push (t); while (! empty ( stack )){ x = stack. pop (); if ( x is a number ) cout << x; else { stack. push ( left (x )); stack. push ( root (x )); stack. push ( right (x ));} } } Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 31 / 35
32 Обхождания Отпечатване чрез стек T 20 <<30 T 30 T 45 <<50 <<50 T 50 T 90 T 90 <<20 <<30 T 45 <<50 T 90 void print (t){ stack. push (t); while (! empty ( stack )){ x = stack. pop (); if ( x is a number ) cout << x; else { stack. push ( left (x )); stack. push ( root (x )); stack. push ( right (x ));} } } <<45 <<50 T 90 T 70 <<90 T 99 <<70 <<90 T 99 <<99 Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 32 / 35
33 Обхождания Обхождане с с опашка Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 33 / 35
34 Обхождания Обхождане с опашка Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 34 / 35
35 Обхождания Въпроси? Калин Георгиев Структури от данни и програмиране 20 октомври 2016 г. 35 / 35
Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23
Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23 Указатели! Калин Георгиев Увод в програмирането 21
ПодробноДефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София
Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 9 март 2005 г. template< class
ПодробноC++
Управляващи оператори в C++ Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 18 30 октомври 2018 г. Трифон Трифонов (УП 18/19) Управляващи оператори в C++ 18 30 октомври
ПодробноМасиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 1
Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 18/19) Масиви и низове 15.11-6.12.2018 г. 1 / 17 Масиви
ПодробноДинамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София
Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.3 16 ноември 2004 г. Пример:
ПодробноМасиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 9 ноември 2016 г. Триф
и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 9 ноември 2016 г. Трифон Трифонов (УП 16/17) и низове 9 ноември 2016 г. 1 / 5 Логическо
ПодробноМасиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г ноември 2018 г. Трифон Трифонов (УП 18/19) Ма
Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 29 ноември 2018 г. Трифон Трифонов (УП 18/19) Масиви и низове 15 29 ноември 2018 г. 1 / 16 Масиви Логическо
ПодробноРекурсия Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. 4 януари
Рекурсия Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. 4 януари 2017 г. Трифон Трифонов (УП 16/17) Рекурсия 21.12.16
ПодробноСериализация Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23
Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23 f «data; f» data; Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 2 / 23 Първо изискване:
ПодробноВ тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операц
В тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операции в езикът C и С++. Символ Предназначение Аритметични
ПодробноПроф
Утвърдил:.. / доц. д-р Е. Великова / Утвърден от Факултетен съвет с протокол... /... СОФИЙСКИ УНИВЕРСИТЕТ СВ. КЛИМЕНТ ОХРИДСКИ Факултет по Математика и Информатика Специалност: Компютърни науки М И К 0
ПодробноПрограмиране на Паскал
Поради връзката на С++ с езика С в голяма част от литературата е прието записването С/С++. Това е найизползваният език за програмиране в света, поради което синтаксисът на някои от по-новите езици като
Подробно3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението
3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението представя кратко въведение в синтактичния анализ.
ПодробноГеометрията в състезателното програмиране Част II Автори Христо Борисов Иван Тодоров 24 април 2009 г. Съдържание 1 Алгоритми Лице на многоъгълни
Геометрията в състезателното програмиране Част II Автори Христо Борисов Иван Тодоров 24 април 2009 г. Съдържание 1 Алгоритми 2 1.1 Лице на многоъгълник........................... 2 1.2 Изпъкнала обвивка.............................
ПодробноHomework 2
Домашна работа 2 по Дизайн и анализ на алгоритми за специалност Компютърни науки, 2. курс, 1. поток СУ, ФМИ, летен семестър на 2017 / 2018 уч. г. СЪСТАВЯНЕ НА АЛГОРИТМИ Задача 1 2 3, а 3, б 3, в Общо получен
ПодробноKontrolno 5, variant 1
N P - П Ъ Л Н И З А Д А Ч И КОНТРОЛНО 5 ПО ДИЗАЙН И АНАЛИЗ НА АЛГОРИТМИ СУ, ФМИ ( ЗА СПЕЦИАЛНОСТ КОМПЮТЪРНИ НАУКИ, 1. ПОТОК; 3 МАЙ 018 Г. ) Задача 1. Разглеждаме задачата за разпознаване LongestCycle:
Подробно2. Наследяване в C++ Съдържание Съдържание Наследяване (Rev: 1.2) Любомир Чорбаджиев 1 1 февруари 2007 г. 1 Наследяване 1 2
2. Съдържание Съдържание Наследяване (Rev: 1.2) Любомир Чорбаджиев 1 lchorbadjiev@elsys-bg.org 1 февруари 2007 г. 1 Наследяване 1 2 2 3 Полиморфизъм 9 1. Наследяване Наследяване UML UML unified modeling
ПодробноLush Green
Класове Какво са класовете? Основен инструмент на ООП Средство за дефиниране на абстрактни типове данни Синтактична конструкция, която позволява логическо групиране на данни и операциите над тях Дефиниция
ПодробноСинтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/
Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Синтаксис за дефиниране на функции 6 януари 2016
ПодробноLush Green
Конструктори Жизнен цикъл на обект За обекта се заделя памет и се свързва с неговото име Извиква се подходящ конструктор на обекта... (достъп до компоненти на обект, изпълняване на операции) Достига се
ПодробноРезултати от предварителен изпит по Биология г. Вх. Номер Пол Словом Цифром Вх. Номер Пол Словом Цифром 1000 Жена Много добър Жен
1000 Жена Много добър 5.19 1050 Жена Отличен 6.00 1001 Жена Много добър 5.25 1051 Жена Много добър 5.32 1002 Жена Много добър 5.32 1052 Жена Много добър 5.19 1003 Мъж Отличен 5.75 1053 Жена Много добър
ПодробноРезултати от редовен изпит по Химия г. Вх. Вх. Пол Словом Оценка номер номер Пол Словом Оценка 7500 Жена Много добър Жена Среден
7500 Жена Много добър 5.35 7579 Жена Среден 3.00 7501 Жена Отличен 5.65 7580 Мъж Слаб 2.00 7502 Жена Слаб 2.00 7581 Жена Добър 3.65 7504 Мъж Отличен 5.50 7583 Жена Отличен 5.55 7507 Жена Отличен 5.60 7586
ПодробноПРИМЕРЕН ГРАФИК ЗА ОБУЧЕНИЯТА по Национална програма Обучение за ИТ кариера График на учебните занятия за ученици, които са в XII клас през учебната 2
ПРИМЕРЕН ГРАФИК ЗА ОБУЧЕНИЯТА по Национална програма Обучение за ИТ кариера График на учебните занятия за ученици, които са в XII клас през учебната 2019/2020 г. и ще се обучават за трета година по Националната
ПодробноПри изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) и
При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) или изменящи се (променливи). Тези данни най-често бива
Подробно8 клас
............ трите имена на ученика клас училище Прочетете внимателно указанията, преди да започнете решаването на теста! Формат на теста Тестът съдържа 7 задачи по математика. 7 задачи от двата вида:
ПодробноПредефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве
Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision :
ПодробноПроф
Утвърдил:.. / доц. д-р Е. Великова / Утвърден от Факултетен съвет с протокол 2 / 24.02.2014 г. СОФИЙСКИ УНИВЕРСИТЕТ СВ. КЛИМЕНТ ОХРИДСКИ Специалност: Информатика М И И 0 1 0 1 1 3 Дисциплина: Факултет
ПодробноЛабораторно упражнение 6 Тема: Оператори за цикли в езика C++. Реализиране на циклични алгоритми I. Цел на лабораторното упражнение Да се затвърдят зн
Лабораторно упражние 6 Тема: Оператори за цикли в езика C++. Реализира на циклични алгоритми I. Цел на лабораторното упражние Да се затвърдят знанията на студентите за организацията и синтаксиса на програми
ПодробноМаисви
МАСИВИ 1. Структурни типове данни Структура от данни - организирана информация, която може да бъде описана, създадена и обработена с помощта на програма. Скаларни типове данни: Целочислен int Реален double
ПодробноСтруктура на програма в C - Част 6 - goto, switch, break и continue клаузи
Структура на програма в C Част 6 - goto, switch, break и continue клаузи Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 21 април
ПодробноMicrosoft Word - tema_7_klas_2009.doc
РЕГИОНАЛЕН ИНПЕКТОРАТ ПО ОБРАЗОАНИЕТО, ОФИЯ-ГРАД Национално състезание-тест по математика за VІІ клас Общински кръг, офия, февруари 009 г. Утвърдил:... аня Кастрева началник РИО, офия-град Тестът съдържа
ПодробноНаръчник на учителя
НАРЪЧНИК НА УЧИТЕЛЯ Целта на това помогало е да е в помощ на всички, използващи обучителната платформа Programiram.com. В него сме описали важни и полезни за процеса на работа инструменти. Профил: Кликнете
Подробноios2011 : [08] AdvancedVC_Animations_Transformations
Сложни компоненти за потребителски интерфейс. Трансформации и анимации. Добрин Добрев Съдържание 1 Сложни компоненти за потребителски интерфейс 2 Трансформации 3 Анимации 4 Сложни компоненти за потребителски
ПодробноСтруктура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор
Структура на програма в C Част 7 - масиви, оператор за индексиране, sizeof оператор Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София
ПодробноКОНСПЕКТ ЗА ДЪРЖАВЕН ИЗПИТ
БУРГАСКИ СВОБОДЕН УНИВЕРСИТЕТ ЦЕНТЪР ПО ИНФОРМАТИКА И ТЕХНИЧЕСКИ НАУКИ Учебно помагало за държавен изпит спец Информатика и компютърни науки теми: - част автори: проф Лазаров теми - доц Гичев теми 3 -
ПодробноECDL_ICDL Spreadsheets.doc
ECDL / ICDL Електронни таблици Учебна програма Цел Този документ съдържа подробна информация относно учебната програма за модул ECDL / ICDL Електронни таблици. Учебната програма очертава знанията и уменията,
ПодробноПрограмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5
Програмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5 Литература Необходими програми Kernighan & Ritchie - The C Programming
Подробно2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет
2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнението представя кратко въведение в теорията на лексическия
ПодробноРЕФЕРАТ по дисциплината Дискретни структури 1. (*) Докажете асоциативността на операциите обединение и сечение на множества, тоест, че за произволни м
РЕФЕРАТ по дисциплината Дискретни структури. (*) Докажете асоциативността на операциите обединение и сечение на множества, тоест, че за произволни множества A, B и C са изпълнени следните равенства: (A
Подробно