 
        
        
        
    ответы составлялись в последнюю ночь перед зачетом человеком, который более-менее понимал тему, поэтому много где нет развернутого и адекватного ответа. Использовать, как макет для составления ответов на зачет.
- Структуры данных. Классификация 
программная единица, позволяющая хранить и обрабатывать множество
однотипных и/или логически связанных данных в
вычислительной технике. Для добавления, поиска,
изменения и удаления данных структура данных
предоставляет некоторый набор алгоритмов реализованных
при помощи функций(, составляющих её интерфейс.
линейные, иерархические, сетевые, табличные и другие
- Алгоритмы. Определение. Как алгоритмы соотносятся со структурами данных. 
набор инструкций, описывающих порядок
действий исполнителя для достижения результата решения
задачи за конечное число действий.
- Оценка сложности алгоритма. Способы. Меры оценки сложности. 
О большое. Как возрастает количество операций в зависимости от количества обрабатываемых элементов. константная, логарифмическая, линейная, квадратичная, экспоненциальная и факториальная. Каждая
следующая — «хуже» предыдущей.
- Оценка сложности алгоритма. Худший, лучший случай и в среднем. 
О большое. Как возрастает количество операций в зависимости от количества обрабатываемых элементов. константная, логарифмическая, линейная, квадратичная, экспоненциальная и факториальная. Каждая
следующая — «хуже» предыдущей.
- Массивы и сортировки массивов. Сортировка пузырьком.Алг. сложность 
Алгоритм состоит из повторяющихся проходов по сортируемому
массиву. За каждый проход элементы последовательно
сравниваются попарно и, если порядок в паре неверный,
выполняется обмен элементов.
Проходы по массиву повторяются N-1 раз или до тех пор, пока на
очередном проходе не окажется, что обмены больше не нужны, что
означает — массив отсортирован.
При каждом проходе алгоритма по внутреннему циклу, очередной
наибольший элемент массива ставится на своё место в конце
массива рядом с предыдущим «наибольшим элементом», а
наименьший элемент перемещается на одну позицию к началу
массива («всплывает» до нужной позиции как пузырёк в воде,
отсюда и название алгоритма).
- Массивы и сортировка массивов. Сортировка выбором.Алг. сложность 
Выбрать элемент с наименьшим ключом
2. Поставить его на первое место т.е. поменять местам с первым
элементом массива
3. Повторить операцию с остальными 2...n элементами
n^2
- Массивы и сортировка массивов. Сортировка вставками.Алг. сложность 
Данная сортировка используется игроками в карты.
Элементы массива разделяются на последовательность-
приемник (а0...аi-1
) и последовательность источник (аi...аn
) .
Суть алгоритма: На каждом шаге, начиная с i=1. В
последовательности источнике берется один элемент и
ставиться в правильную позицию в последовательности
приемнике. Количество элементов в последовательности
приемнике увеличивается, а в последовательности
источнике уменьшается.
n^2
- Массивы и сортировка массивов. Сортировка расчёской.Алг. сложность 
Шаг между сравниваемыми элементами лучше брать с учётом
специальной величины, называемой фактором уменьшения,
оптимальное значение которой равно примерно 1,247
- Массивы и сортировка массивов. Сортировка Шелла.Алг. сложность 
Является усовершенствованным вариантом сортировки
вставками. Идея метода Шелла состоит в сравнении элементов,
стоящих не только рядом, но и на определённом расстоянии
друг от друга. Т.е. это сортировка вставками с
предварительными «грубыми» проходами.
- Массивы и сортировка массивов. Быстрая сортировка. Алг. сложность 
1.Выбираем опорный элемент
2.Разбиваем массив на 3 части
1. Создаём переменные l и r — индексы соответственно начала и
конца рассматриваемого подмассива
2. Увеличиваем l, пока l-й элемент меньше опорного
3. Уменьшаем r, пока r-й элемент больше опорного
4. Если l всё ещё меньше r, то меняем l-й и r-й элементы местами,
инкрементируем l и декрементируем r
5. Если l вдруг становится больше r, то прерываем цикл
3.Повторяем рекурсивно (то есть сортируем левую и правую часть
массива относительно опорного), пока не дойдём до массива из 1/0
элементов.
- Списки. Виды списков. Организация списков при помощи массивов. 
Список – это совокупность элементов, число которых
может меняться.
Структура списка похожа на модель звеньев цепи.
•Односвязные
•Циклические
•Двусвязные
- Списки. Виды списков. Организация списков при помощи динамических структур. 
Список – это совокупность элементов, число которых
может меняться.
Структура списка похожа на модель звеньев цепи.
•Односвязные
•Циклические
•Двусвязные
•Инициализация списка
•Добавление узла в список
•Удаление узла из списка
•Вывод элементов списка
•Сращивание списков
- Стек. Организация стека при помощи массива, динамической структуры. 
- Очередь. Организация очереди при помощи массива. Динамической структуры.Двух стеков. 
Очередь можно реализовать на двух стеках leftStack и
rightStack.
leftStack будеn использовать для операции push,
rightStack для операции pop.
При этом, если при попытке извлечения элемента из
rightStack он оказался пустым, все элементы из leftStack
переносятся в правый стек (при этом элементы в rightStack
получатся уже в обратном порядке, что и нужно для
извлечения элементов, а leftStack станет пустым).
pushLeft и pushRight — функции, реализующие операцию
push для соответствующего стека,
popLeft и popRight — аналогично операции pop.
- Деревья. Определения. Высота, степень дерева, степень узла. Бинарные деревья. 
Дерево — это граф без петель и циклов. Деревья используются для организации
данных в виде иерархической структуры.
Глубина дерева — самый длинный путь от корня дерева до его
листа.
Высота дерева будет высота его корневого
узла,
или , что эквивалентна, глубина самого
глубокого узла.
• Глубина дерева — самый длинный путь от
корня дерева до его листа (выражается в числе
ребер).
Степенью узла в дереве называется количество дуг, которое из него выходит.
- Бинарные деревья. Организация бинарных деревьев при помощ массива. 
по обходу в ширину
- Бинарные деревья поиска. Организация деревьев при помощи динамических структур. 
- Бинарные деревья поиска. Операции. Удаление элементов из дерева. 
- Бинарные деревья. Стратегии обхода деревьев. В ширину. 
прямой, центрированный, обратный, в ширину
- Бинарные деревья. Стратегии обхода деревьев. В глубину. 
прямой, центрированный, обратный, в ширину
- Графы. Способы задания графов. Матрица инцидентности. Матрица смежности. 
граф состоит из множества элементов данных ,
называемыми вершинами, и множества ребер, которые
попарно соединяют эти вершины.
Матрица инцидентности:
матрица ребер и вершин
для ориентированного входящие -1, а исходящие 1
Матрица смежности: матрица вершин и вершин. Если есть путь - 1, если нет - 0
Матрица инцидентности
Матрица смежности
Матрица весов
Список ребер
Список смежности
- Графы. Обходы графов. Поиск в ширину и глубину. 
Поиск в глубину
Поиск в ширину
- Кратчайшие пути на графах. Алгоритм дейстры 
- Кратчайшие пути на графах. Алгоритм флойда. 
A->C->B
- Кратчайшие пути на графах. Волновой алгоритм. 
- Задача коммивояжера. 
В задаче коммивояжера рассматривается n городов и матрица попарных расстояний
между ними. Требуется найти такой порядок посещения городов, чтобы суммарное
пройденное расстояние было минимальным, каждый город посещался ровно один
раз и коммивояжер вернулся в тот город, с которого начал свой маршрут.
1. Полный перебор
2. Случайный перебор
3. Жадные алгоритмы (метод ближайшего соседа, метод
включения ближайшего города, метод самого дешёвого
включения)
Ближайший сосед, ветвей и границ
- Форматы данных XML 
XML разрабатывался как язык с простым формальным синтаксисом, удобный для создания и обработки документов как программами, так и человеком, с акцентом на использование в Интернете. Язык называется расширяемым, поскольку он не фиксирует разметку, используемую в документах: разработчик волен создать разметку в соответствии с потребностями к конкретной области, будучи ограниченным лишь синтаксическими правилами языка.
- Хранение данных в формате JSON 
В одной из моих программ понадобилась запись данных в формате JSON. Вкратце — XML-подобный формат, вполне подходит на замену Windows INI-файлам или тому же XML. Удобен тем, что поддерживает массивы и вложенность собственных структур, но при этом не замусоривает файл данных своими тегами до полной нечитабельности человеком.
