# Материалы
### [Рейтинг](https://docs.google.com/spreadsheets/d/1x0QXLui70Cj9NGqFVXYDVrasO0QE8Qx4zBAHUxsTGT4/edit?usp=sharing)
### [Павловская](http://cph.phys.spbu.ru/documents/First/books/7.pdf)
## Доп. задачи
* RLE и Хаффман
* Задача коммивояжера (простой перебор, метод Литтла, метод муравьиных колоний)
## 25.05.18 Решение уравнения f(x) = 0
* Бинарный поиск
* Метод хорд
* Метод касательных
## 18.05.18 Графы
* [Задача C. Заправки](http://informatics.mccme.ru/mod/statements/view3.php?id=193&chapterid=7)
* [Задача D. Есть ли цикл?](http://informatics.mccme.ru/mod/statements/view3.php?id=218&chapterid=98)
* [Задача H. Два профессора](http://informatics.mccme.ru/mod/statements/view3.php?id=218&chapterid=1334)
* [Задача B. Получи дерево](http://informatics.mccme.ru/mod/statements/view3.php?id=261&chapterid=182)
## 11.05.18 Комбинаторика
* [Задача F. Все перестановки заданной длины](http://informatics.mccme.ru/mod/statements/view3.php?id=211&chapterid=85)
* [Задача D. Следующая...](http://informatics.mccme.ru/mod/statements/view3.php?id=264&chapterid=194)
* [Задача M. Разбиение на неубывающие слагаемые, обратный порядок](http://informatics.mccme.ru/mod/statements/view3.php?id=211&chapterid=92)
* [* Задача B. Степень перестановки](http://informatics.mccme.ru/mod/statements/view3.php?id=265&chapterid=196)
## 13.04.18 B-дерево
Написать класс, реализующий B-дерево.
## 13.04.18 АВЛ-дерево
Написать класс, реализующий АВЛ-дерево.
## 6.04.18 Классы
Написать класс, реализующий бинарное дерево. Кроме операций добавления, удаления и т.д. описать в методах решение следующих задач: [Задача F](http://informatics.mccme.ru/mod/statements/view3.php?id=599&chapterid=762), [Задача E](http://informatics.mccme.ru/mod/statements/view3.php?id=599&chapterid=761)
Теперь в оценку за программу входит то, как вы пишете код. Плохо написанный код оценивается меньше.
## 30.03.18 Разбор арифметических операций
Написать программу, которая парсит арифметическое выражение (пр. ((a+b)*(c-d)) с использованием бинарного дерева (то, что делали на паре)
Так же вывод арифметического выражения
и рекурсивный подсчет самого выражения
## 16.03.18 Двоичное дерево поиска
Написать двоичное дерево поиска
* Добавление
* Поиск
* Удаление
* Печать (любым обходом)
## 9.03.18 Сортировки
Реализовать сортировку номер которой соответствует номеру в рейтинге % 4
0. слиянием
1. подсчётом
2. карманная (блочная)
3. поразрядная
## 2.03.18 Хеш таблица
Реализовать хеш-таблицу с закрытой адресацией (метод цепочек). Для удобства тестирования введем след. обозначения:
* max_len = 256
* хеш-фушкцию считаем как сумму кодов символов по модулю max_len
Пример структуры:
``` c++
struct List {
string key;
string value;
List * next;
};
```
Функции:
* Добавление в таблицу: void add(List *, string , string )
* Удаление: bool del(List *, string)
* Поиск: List* search(List *, string)
* Вывод всей таблицы: void print(List *)
* Ну и сама хеш-функция: int h(string)