CITB308 Структури от данни

Анотация:

Курсът се състои от две части по 30 учебни часа: лакции и упражнения.

Теметичният план вкиючва разглежда абстрактни структури от данни и свързаните с тях алгоритми. Разглеждат се реализации на основни структури от данни, използвайки езика за програмиране C++, като стек, опашка, приоритетна опашка, вектор, списък и редица. Важно място заемат нелинейните структури от данни - двоични дървета за търсене и речници. Също така курса обхваща основни алгоритми за сортиране, включително ефективност и приложението им.

http://nikolay.kirov.be/2024/CITB308/index.html

прочети още
Информационни технологии

Преподавател(и):

доц. Николай Киров  д-р
доц. Методи Трайков  д-р

Описание на курса:

Компетенции:

Успешно завършилите курса студенти:

1) Знаят:

• Стекове, опашки, свързани списъци и рекурсия.

• Абстрактния тип „дърво“, основни алгоритми върху дървета, двоични дървета, структури от данни за представяне на дървета.

• Абстрактния тип „приоритетна опашка“.

• Абстрактния тип „речник“. Хеш-таблици, наредени речници.

• Дървета за двоично търсене, АВЛ-дървета, многопосочни дървета, (2,4) дървета, червено-черни дървета.

• Алгоритми за сортиране, свързани с абстрактни структури от данни.

2) Могат:

• Да използват рекурсия, стекове, опашки, свързани списъци, двусвързани опашки.

• Да използват STL вектори, списъци и редици.

• Да реализират и използват приоритетна опашка.

• Да реализират и използват алгоритмите за сортиране.

• Да реализират и използват двоични и търсещи дървета.
Предварителни изисквания:
Студентите трябва да знаят учебния материал от следните курсове:

CITB107 Програмиране

CITB205 Обектно-ориентирано програмиране

Форми на провеждане:
Редовен

Учебни форми:
Лекция

Език, на който се води курса:
Български

Теми, които се разглеждат в курса:

  1. Език за програмиране С++. Обектно ориентирано програмиране
  2. Език за програмиране С++. Обектно ориентирано програмиране (Задачи)
  3. Анализ на алгоритми
  4. Анализ на алгоритми (Задачи)
  5. Стек, опашка и дек
  6. Стек, опашка и дек (Задачи)
  7. Вектори, списъци и редици
  8. Вектори и списъци - Част 1 (Задачи)
  9. Тест 1
  10. Вектори и списъци - Част 2 (Задачи)
  11. Дървета - Част 1
  12. Дървета - Част 1 (Задачи)
  13. Дървета - Част 2
  14. Контролна работа 1
  15. Приоритетна опашка - Част 1
  16. Дървета - част 2 (Задачи).
  17. Приоритетна опашка - Част 2
  18. Приоритетна опашка - Част 1 (Задачи)
  19. Тест 2
  20. Приоритетна опашка - Част 2 (Задачи)
  21. Речници - Част 1
  22. Речници - Част 1 (Задачи)
  23. Речници - Част 2
  24. Речници - Част 2 (Задачи)
  25. Търсещи дървата - Част 1
  26. Търсещи дървата - Част 1 (Задачи)
  27. Търсещи дървата - Част 2
  28. Търсещи дървата - Част 2 (Задачи)
  29. Тест 3
  30. Контролна работа 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