Книга с задачами
Tasks:
- Контейнеры, очереди, стеки:
- 1.3.32(стр.161) Реализация стекоочереди на основе линкд листа с операциями push, pop, append
link:Linked Stack Queue
PLAN: 0.5 hours FACT: 0.5 hours - 1.3.35(стр.161) Реализация случайной очереди
link:Random queue
PLAN: 0.5 hours FACT: 0.3 hours - 1.3.36(стр.162) Реализация итератора для случайной очереди
link:Random Queue Iterator
PLAN: 0.3 hours FACT: 0.3 hours - 1.3.48(стр.164) Реализация двух стеков в деке с постоянным количеством операций в деке
link:Two Stacks in a Deque
PLAN: 1 hour FACT: ~1.5 hours
- Применение сортировок:
- 2.5.21(cтр.329) Сортировка многомерных векторов(по первому элементу)
Multidimensional Vector
Plan:20 minutes Fact:25 minutes - 2.5.14 Сортировка доменных имён(смена мест первой и последней части)
Domain Sort
Plan:30 minutes Fact:20 minutes - 2.5.18 Метод-оболочка,делающий сортировку устойчивой
Stable Sort Wrapper
Plan:30 minutes Fact:40 minutes - 2.5.28 Вывод отсортированных имён файлов в указанном каталоге
File Sorter(placed as a method task4 in main)
Plan:40 minutes Fact:40 minutes
- Деревья бинарного поиска:
- 3.2.25 (стр. 380) Идеальная балансировка бинарного дерева
Perfectly Balanced Tree
Plan: 1 hour Fact: 45 minutes - 3.2.28 (cтр. 380) Программное кэширование (попасть к последнему узлу за константное время)
BST
Plan: 30 minutes Fact: 30 minutes
3)3.2.29 (стр.380) Проверка бинарного дерева
Is Binary Tree
Plan: 30 minutes Fact: 30 minutes - 3.2.33 (cтр. 381) Проверка выбора и ранга
Check Select Rank
Plan: 30 minutes Fact: 30 minutes
- Сбалансированные деревья поиска:
- 3.3.23 (стр. 407) 2-3 деревья без требования баланса
Two Three Trees
Plan: 1 hour Fact: 1 hour - 3.3.25 (cтр. 407) Нисходящие 2-3-4 деревья
Red Black Tree
Plan: 1.5 hours Fact: 1 hour
3)3.3.35 (стр.408) 2-3 деревья
Two Tree ST
Plan: 45 minutes Fact: 1 hour - 3.3.36 (cтр. 408) 2-3-4-5-6-7-8 Деревья
Two Three Four Trees
Plan: 30 minutes Fact: 30 minutes
- Хеш-таблицы:
- 3.4.4(стр. 433) Идеальная хеш функция
Perfect Hash Function
Plan: 30 minutes Fact: 30 minutes - 3.4.22 (cтр. 435) Реализация HashCode для типов данных
Hash Code
Plan: 20 minutes hours Fact: 15 minutes - 3.4.23 (стр.435) Модульное хеширование
Modular Hashing
Plan: 20 minutes Fact: 20 minutes - 3.4.36 (cтр. 437) Диапазон длин списков
Separate Chaining Hash Table
Plan: 30 minutes Fact: 30 minutes
- Сортировка строк:
- 5.1.11 (стр. 654) MSD сортировка на очередях
MSD Sort
Plan: 30 minutes Fact: 30 minutes - 5.1.14 (cтр. 654) Сортировка массивов квиксортом
Three Way quicksort
Plan: 40 minutes hours Fact: 30 minutes - 5.1.15 (стр.654) Сублинейная сортировка
Sublineal Sort
Plan: 20 minutes Fact: 30 minutes - 5.1.17 (cтр. 654) Распределяющий подсчет на месте
In-place Radix Sort
Plan: 30 minutes Fact: 30 minutes
- Trie-деревья:
1)5.2.11 (стр.678) Вненшие односторонние ветви
For TrieST
For TST
Plan:40 minutes Fact:30 minutes
2)5.2.14(cтр. 679) Поиск уникальных подстрок длиной L
Placed as method task2 in main
Plan: 20 minutes Fact:15 minutes
3)5.2.15(стр. 679) Поиск уникальных подстрок любой длины
Placed as method task3 in main
Plan: 10 minutes Fact:10 minutes
4)5.2.21(стр.679) Сопоставление подстрок
Substring Matcher
Plan:30 minutes Fact:20 minutes
- Поиск подстрок:
1)5.3.25 (стр.704) Циклические перестановки
Cyclic Permutations
Plan:30 minutes Fact:30 minutes
2)5.3.30 (cтр. 705) Двумерный поиск
Two dimensional search
Plan: 20 minutes Fact:15 minutes
3)5.3.36 (cтр. 706) Cлучайный текст
Binary string Count
Plan: 40 minutes Fact:35 minutes
4)5.3.37 (cтр. 706) Поиск Кнута-Морриса-Пратта
Knut Morris Pratt
Plan: 40 minutes Fact:35 minutes
- Регулярные выражения:
1)Задание 5.4.9 (placed in main as method task1)
Условие: Напишите регулярное выражение для двоичных строк, которые содержат не менее двух нулей, но не содержат последовательных нулей.
Время выполнения (PLAN: 30 минут FACT: 20 минут)
2)Задание 5.4.15(placed in main as method task2)
Условие: Одноуровневые РВ. Напишите РВ, описывающее множество строк, которые допустимы в двоичном алфавите, но без вложенных скобок. Например, строки (0.1) и (1.0) принадлежат этому языку, а (1(0 и 1)1)* — нет.
d Время выполнения (PLAN: 20 минут FACT: 20 минут)
3)Задание 5.4.17
Условие: Обобщенные символы. Добавьте в класс NFA обработку обобщенных символов.
Время выполнения (PLAN: 40 минут FACT: 35 минут)
4)Задание 5.4.18
Условие: Один или несколько. Добавьте в класс NFA обработку операции замыкания +.
Время выполнения (PLAN: 40 минут FACT: 35 минут)