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

Учебна програма, график за лекциите, учебни материали [2021/2022]


Тема на лекция
Дата
1.
Език за програмиране С++
Базисни елементи, изрази, функции, класове,
Обектно ориентирано програмиране
Наследственост и полиморфизъм, шаблони, обработка на изключения
Chapters 1: C++ Programming [html] (1-56)
Basic C++ Programming Elements, Expressions, Functions, Classes
Chapters 2: Оbject Oriented Design [html] (61-96)
Inheritance and Polymorphism, Templates, Exceptions
7.10
2.
Анализ на алгоритми
Време за изпълнение, псевдокод, анализ на алгоритми, асимптотичната нотация, асимптотичен анализ
(виж още Оценка и сложност на алгоритми)
Chapter 3: Analysis Tools [pdf] [html](107-134)
Running Time and Pseudo-Code, Analysis of Algorithms, Asymptotic Notation, Asymptotic Analysis [Wiki],
[Lec 2 | MIT 6.046J / 18.410J Introduction to Algorithms]
На 14.10 няма да има занятия!!
Отучване на 16.10, събота, 13:00-14:30, 310-1.
14.10


3.
Стек, опашка и дек
Стек, опашка, свързан списък, дек
Chapter 4: Stacks, Queues, and Recursion [html] (143-202)
Stacks, Queues, Linked Lists, Double-Ended Queues
21.10
4.
Вектори, списъци и редици (дистанционно)
Вектори, списъци, редици, метод на мехурчето с редици, итератори, Йерархия от редични абстрактни типове данни (АТД)
Chapter 5: Vectors, Lists, and Sequences [html] (203-252)
Vectors, Lists, Sequences, Case Study: Bubble-Sort on a Sequence, Iterators, A Hierarchy of Sequence ADTs
(Задачи за упражнения)
28.10
5.
Тест 1 (дистанционно)
Указания за провеждане на теста
Бланка за попълване на индивидуален тест
4.11
6.
Дървета - първа част (дистанционно)
Дървета АТД, базови алгоритми за дървета
Chapter 6: Trees I [html] (253-272)
The Tree Abstract Data Type, Basic Algorithms on Trees
11.11
7.
Дървета - втора част (дистанционно)
Двоични дървета, структури от данни за представяне на дървета
Chapter 6:Trees II [html] (273-300)
Binary Trees, Data Structures for Representing Trees
18.11
8.
Приоритетна опашка - първа част
Приоритетна опашка АТД, реализиране на приоритетна опашка с редица
Chapter 7: Priority Queues I [html] (311-329)
The Priority Queue Abstract Data Type, Implementing a Priority Queue with a Sequence
25.11
9.
Приоритетна опашка - втора част
Хип, реализиране на приоритетна опашка като хип
Chapter 7: Priority Queues II [html] (330-348)
Heaps, Implementing a Priority Queue as a Heap
(Задачи за упражнения)
2.12



10.
Речници - първа част
Речник АТД, наредени речници
Chapter 8: Dictionaries I [html] (363-402)
The Dictionary Abstract Data Type, Ordered Dictionaries
9.12
11.
Тест 2 (дистанционно)
Указания за провеждане на теста
Бланка за попълване на индивидуален тест
16.12
12.
Речници - втора част (дистанционно)
Хеширане
Chapter 8: Dictionaries II [html] (363-402)
Hash Tables
23.12
13.
Търсещи дървата - първа част
Двоични търсещи дървета, AVL-дървета
Chapter 9: Search Trees I [html] (411-436)
Binary Search Trees, AVL Trees
6.01
14.
Търсещи дървета - втора част (дистанционно)
Multi-Way търсещи дървета, (2,4)-дървета, червено-черни дървета
Chapter 9: Search Trees II [html] (437-467)
Multi-Way Search Trees, (2,4) Trees, Red-Black Trees
(Задачи за упражнения)
13.01
15.
Тест 3 (дистанционно)
Указания за провеждане на теста
Бланка за попълване на индивидуален тест
20.01
Сесия
Семестриален изпит (дистанционно)
(Поправка на един тест, избор между Тест 1, Тест 2 и Тест 3)
(Тест 4 и устен изпит)
Правила за изпита
17.02
13:00