CITB308 Структури от данни
Анотация:
Курсът се състои от две части по 30 учебни часа: лакции и упражнения.
Теметичният план вкиючва разглежда абстрактни структури от данни и свързаните с тях алгоритми. Разглеждат се реализации на основни структури от данни, използвайки езика за програмиране C++, като стек, опашка, приоритетна опашка, вектор, списък и редица. Важно място заемат нелинейните структури от данни - двоични дървета за търсене и речници. Също така курса обхваща основни алгоритми за сортиране, включително ефективност и приложението им.
http://nikolay.kirov.be/2024/CITB308/index.html
Преподавател(и):
доц. Николай Киров д-р
доц. Методи Трайков д-р
Описание на курса:
Компетенции:
Успешно завършилите курса студенти:
1) Знаят:
• Стекове, опашки, свързани списъци и рекурсия.
• Абстрактния тип „дърво“, основни алгоритми върху дървета, двоични дървета, структури от данни за представяне на дървета.
• Абстрактния тип „приоритетна опашка“.
• Абстрактния тип „речник“. Хеш-таблици, наредени речници.
• Дървета за двоично търсене, АВЛ-дървета, многопосочни дървета, (2,4) дървета, червено-черни дървета.
• Алгоритми за сортиране, свързани с абстрактни структури от данни.
2) Могат:
• Да използват рекурсия, стекове, опашки, свързани списъци, двусвързани опашки.
• Да използват STL вектори, списъци и редици.
• Да реализират и използват приоритетна опашка.
• Да реализират и използват алгоритмите за сортиране.
• Да реализират и използват двоични и търсещи дървета.
Предварителни изисквания:
Студентите трябва да знаят учебния материал от следните курсове:
CITB107 Програмиране
CITB205 Обектно-ориентирано програмиране
Форми на провеждане:
Редовен
Учебни форми:
Лекция
Език, на който се води курса:
Български
Теми, които се разглеждат в курса:
- Език за програмиране С++. Обектно ориентирано програмиране
- Език за програмиране С++. Обектно ориентирано програмиране (Задачи)
- Анализ на алгоритми
- Анализ на алгоритми (Задачи)
- Стек, опашка и дек
- Стек, опашка и дек (Задачи)
- Вектори, списъци и редици
- Вектори и списъци - Част 1 (Задачи)
- Тест 1
- Вектори и списъци - Част 2 (Задачи)
- Дървета - Част 1
- Дървета - Част 1 (Задачи)
- Дървета - Част 2
- Контролна работа 1
- Приоритетна опашка - Част 1
- Дървета - част 2 (Задачи).
- Приоритетна опашка - Част 2
- Приоритетна опашка - Част 1 (Задачи)
- Тест 2
- Приоритетна опашка - Част 2 (Задачи)
- Речници - Част 1
- Речници - Част 1 (Задачи)
- Речници - Част 2
- Речници - Част 2 (Задачи)
- Търсещи дървата - Част 1
- Търсещи дървата - Част 1 (Задачи)
- Търсещи дървата - Част 2
- Търсещи дървата - Част 2 (Задачи)
- Тест 3
- Контролна работа 2
Литература по темите:
Учебник:Michael Goodrich, Roberto Tamassia, David M. Mount, Data Structures and Algorithms in C++, Wiley, 2004.
[Библиотека на НБУ: Ч 681.325.3 / G 64 и Moodlе NBU]
Michael Goodrich, Roberto Tamassia, David M. Mount, Data Structures and Algorithms in C++, Wiley, Second edition, 2011. [Moodle NBU]
Средства за оценяване:
Лекции - 3 теста за текущо оценяване и тест и писмено изложение за финално оценяване
Упражнения - Две практически контролни работи по време на семестъра, които представляват разработка на програми на C++ по зададена задача и 2 домашни работи за текущо оценяване. Практически изпит за финално оценяване.
http://nikolay.kirov.be/2023/CITB308/index.html