CITB304 Упражнения по Структури от данни
Анотация:
Курсът разглежда основните алгоритми и структури от данни като се набляга на практическите аспекти при реализацията им на обектно ориентиран език за програмиране. Включени са основни структури от данни като свързани списъци, стекове, опашки и вектори, както и по-сложни като двоични дървета за търсене, и речници. Разгледани са основни алгоритми за сортиране като се набляга на тяхното сравнение и приложение.
Преподавател(и):
доц. Ласко Ласков д-р
Описание на курса:
Компетенции:
Успешно завършилите курса студенти:
1) Знаят:
• Стекове, опашки, свързани списъци и рекурсия.
• Абстрактния тип „дърво“, основни алгоритми върху дървета, двоични дървета, структури от данни за представяне на дървета.
• Абстрактния тип „приоритетна опашка“.
• Абстрактния тип „речник“. Хеш-таблици , подредени речници.
• Дървета за двоично търсене, АВЛ-дървета, многопосочни дървета, (2,4) дървета, червено-черни дървета.
• Абстрактен тип „множество“, долна граница на сортиране на базата на сравнения, сравнение на алгоритми за сортировка.
• Алгоритми за съпоставяне с образец.
2) Могат:
• Да използват рекурсия, стекове, опашки, свързани списъци, двусвързани опашки.
• Да използват STL вектори, списъци и последователности.
• Да реализират приоритетна опашка, използвайки последователност. Да реализират структурата от данни Heap.
• Да реализират алгоритмите за сортировка Quick Sort, Bucket Sort, Radix Sort.
• Да използват дървета, сравнение на символни низове, търсене на подобие в символни низове.
Предварителни изисквания:
CITB101 Увод в езиците С и С++
CITB102 Програмиране на С и С++
CITB201 Обектно ориентирано програмиране (С++)
CITB202 Обектно ориентирано проектиране със С++
Форми на провеждане:
Редовен
Учебни форми:
Групов
Език, на който се води курса:
Български
Теми, които се разглеждат в курса:
1. Стекове, опашки и рекурсия.
2. Вектори, списъци и последователности.
3. Дървета.
4. Приоритетни опашки.
5. Речници.
6. Дървета за търсене.
7. Сортиране, множества, селектиране.
8. Обработка на символни низове и текст.
Литература по темите:
Michael Goodrich, Roberto Tamassia, David M. Mount, Data Structures and Algorithms in C++.
Средства за оценяване:
Три практически теста по време на семестъра, които представляват разработка на програми на C++ по зададена задача. Три домашни задания.