
- •Понятие сложности алгоритма, оценки времени исполнения.
- •Общая классификация вычислительных алгоритмов.
- •Точность представления чисел.
- •Вычисление «машинного нуля».
- •Понятие стека. Операции над стеком.
- •Программная реализация стека на основе статического массива.
- •Использование стека при организации связи функций в языке Си и в ос.
- •Понятие очереди. Операции над очередями.
- •Кольцевая очередь. Деки.
- •Программная реализация очереди на основе статического массива.
- •Структура данных «список».
- •Ссылки.
- •Линейные списки – основные операции.
- •Реализ списков на основе динам стру.
- •Двусвязный список и его программная реализация.
- •Кольцевые списки.
- •Многосвязные (слоеные) списки.
- •Бинарный поиск.
- •Алгоритм прямого поиска.
- •Алгоритм Кнута-Мориса-Пратта.
- •Алгоритм Боуера-Мура.
- •Сортировки – общая классификация.
- •Сортировка с помощью включения.
- •Сортировка с помощью выделения
- •Сортировка с помощью обменов
- •Шейкерная сортировка
- •Сортировка Шелла
- •Сравнение рассмотренных сортировок
- •Пирамидальная сортировка
- •Быстрая сортировка.
- •Сортировка слиянием
- •Графы – основные понятия.
- •Формы представления графов. Матрица смежности
- •Матрица инцидентности
- •Списки смежности
- •Массив дуг
- •Достижимость и обходы графа
- •Алгоритм Дейкстры
- •[30, 1] Постоянная
- •[40, 3] Постоянная
- •Вычисление выражений по их символьному представлению.
- •Построение обратной польской записи выражения.
Программная реализация очереди на основе статического массива.
При представлении очереди в статической памяти в ней должны находиться два указателя: на начало очереди (на первый элемент в очереди) и на ее конец (первый свободный элемент в очереди). При включении элемента в очередь элемент записывается по адресу, определяемому указателем на конец, после чего этот указатель увеличивается на единицу. При исключении элемента из очереди выбирается элемент, адресуемый указателем на начало, после чего этот указатель уменьшается на единицу. Со временем указатель на конец при очередном включении элемента достигнет верхней границы той области памяти, которая выделена для очереди. Однако, если операции включения чередовались с операциями исключения элементов, то в начальной части отведенной под очередь памяти имеется свободное место. Для того, чтобы места, занимаемые исключенными элементами, могли быть повторно использованы, очередь замыкается в кольцо: указатели (на начало и на конец), достигнув конца выделенной области памяти, переключаются на ее начало. Такая организация очереди в памяти называется кольцевой очередью. В исходном состоянии указатели на начало и на конец указывают на начало области памяти. Равенство этих двух указателей (при любом их значении) является признаком пустой очереди. Если в процессе работы с кольцевой очередью число операций включения превышает число операций исключения, то может возникнуть ситуация, в которой указатель конца "догонит" указатель начала..
Очистка очереди сводится к записи одного и того же (не обязательно начального) значения в оба указателя. Определение размера состоит в вычислении разности указателей с учетом кольцевой природы очереди.
Структура данных «список».
Список – набор элементов (чаще структурных переменных), размещаемых в динамической памяти и связанных между собой с использованием указателей на эти элементы.
Если список располагается в оперативной памяти, то, как правило, информация для поиска следующего объекта – это указатель, адрес памяти.
Списки бывают линейными и кольцевыми, односвязными и двусвязными. Элемент односвязного списка содержит кроме непосредственно «полезной» информации также информацию о следующем либо предыдущем элементе списка. Соответственно элемент двусвязного списка содержит информацию как о следующем, так и о предыдущем элементах. Последний элемент кольцевого списка содержит указатель на первый элемент списка.
В списке элементы связаны друг с другом логически. Логический порядок следования элементов списка определяется с помощью указателей. Подчеркнем, что логический порядок следования элементов списка может не совпадать с физическим порядком их расположения в памяти ЭВМ.
Ссылки.
Ссылка – информация о связи данного компонента структуры с другим.
В качестве ссылки выступает один или множество указателей, ссылающихся на элементы рассматриваемого списка, а в качестве содержания – любой тип данных (в том числе структура).
В стеках – указатель на конец списка.
В очередях – указатель на начало и конец списка.
В кольцевых очередях – последний элемент очереди содержит указатель на начало очереди.