- •Введение
- •1. Алгоритмы сортировки
- •1.1. Общие положения
- •1.2. Сортировка простыми включениями
- •Словесное описание алгоритма
- •1.3. Сортировка простым выбором
- •1.4. Сортировка простым обменом
- •1.5. Задания для самостоятельной работы
- •2. Алгоритмы покрытия
- •2.1. Постановка задачи покрытия
- •2. 2. Алгоритм полного перебора
- •2. 3. Алгоритм граничного перебора по вогнутому множеству
- •2.4. Алгоритмы, использующие сокращение таблицы покрытий
- •1. Для случая построения одного кратчайшего покрытия
- •2. В случае построения минимального покрытия
- •3. При условии построения всех безызбыточных покрытий
- •2.5. Алгоритм приближенного решения задачи о покрытии
- •2.6. Задачи для самостоятельной работы
- •3. Алгоритмы на графах
- •3.1. Общие положения
- •3.2. Алгоритмы нахождения оптимального пути
- •Волновой алгоритм построения кратчайшего пути для взвешенного графа
- •Волновой алгоритм построения длиннейшего пути во взвешенном графе
- •3.3. Нахождение компонент связности
- •Алгоритм построения компонент связности в неориентированном графе
- •Пример 3.5
- •3.4. Алгоритмы нахождения подграфов
- •3.5. Дерево. Остов
- •Пример 3.7.
- •Алгоритм построения произвольного остова
- •Алгоритм построения минимального остова
- •Алгоритм построения системы независимых циклов графа
- •Пример 3.12.
- •3.6. Алгоритм кратчайшей раскраски графа
- •3.7. Задачи для самостоятельной работы
- •4. Конечные автоматы
- •4.1. Общие положения
- •4.2. Представление автомата
- •4.3. Взаимные преобразования автоматов
- •4.4. Определение реакции автомата на входное слово
- •4.5. Задания для самостоятельной работы
- •5. Машины тьюринга
- •5.1. Общие положения
- •5.2. Операции над машинами Тьюринга
- •6. Структуры данных
- •6.1. Списки
- •6.2. Двусвязный список
- •6.3. Кольцевой список
- •6.4. Стек
- •6.5. Очередь
- •6.6. Задания для самостоятельной работы
- •Литература
6.6. Задания для самостоятельной работы
В первых трёх заданиях список состоит из семи элементов; количество элементов стека определяется указателем Top.
Во
всех заданиях записать процедуры
ВСТАВИТЬ и УДАЛИТЬ, исходя из фактических
(конкретных) значений параметров
процедуры.
1.
Задан
односвязный список. Вставить указанный
элемент, а затем удалить указанный
элемент (табл. 6.14).
2.
Задан
двусвязный список. Выполнить задания,
аналогичные заданию 1.
3.
Задан
кольцевой список. Выполнить задания,
аналогичные заданию 1.
4.
Задан стек с указанной в табл. 6.15
вершиной. Ввести новый элемент; удалить
элемент из исходного стека.
5.
Задана очередь (табл. 6.15; вместо Top
считать
Head).
Ввести новый элемент; удалить элемент
из исходной очереди.
Таблица 6.14
-
№
Ins
Del
1
2
3
4
5
6
El34
El56
El23
El12
El45
El34
El7
El5
El6
El4
El2
El3
Таблица 6.15
-
№
K (Top)
1
2
3
4
5
6
7
4
3
8
6
5
Литература
1. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. – М.: Мир. 1981. – 368 с.
2. Вирт Н. Алгоримы + структуры данных = программы. – М.: Мир, 1985. – 406 с.
3. Сигорский В.П. Математический аппарат инженера. – К.: “Техніка”, 1975. – 768 с.
4. Баранов С.И. Синтез микропрограммных автоматов. – Л.: Энергия, 1974. – 216 с.
5. Айзерман М.А. и др. Логика. Автоматы. Алгоритмы. – М.: Физматгиз, 1963. – 556 с.
6. Паулин О.Н. Основы теории алгоритмов: Учеб. пособие. – Одесса: Автограф, 2005. – 188 с.
содержание
ВВЕДЕНИЕ ………………………………………………………………………………… |
3 |
1. алгоритмы сортировки ………………………………………………………….. |
4 |
2. алгоритмы покрытия ……………………………………………………………... |
13 |
3. алгоритмы на графах …………………………………………………………….. |
24 |
4. Конечные автоматы ……………………………………………………………….. |
44 |
5. МАШИНЫ ТЬЮРИНГА ………………………………………………………………….. |
50 |
6. СТРУКТУРЫ ДАННЫХ ………………………………………………………………….. |
58 |
ЛИТЕРАТУРА ……………………………………………………………………………... |
65 |
*После знака «=» указано количество букв для общего случая.
Для простоты мы будем использовать входной алфавит, содержащий две буквы, x0=0 и x1=1.
1 Здесь и далее знак умножения опускается