Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TP-Otvety.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
101.7 Кб
Скачать

29. Стек и дерево вызовов подпрограмм.

Стек - структура данных, в которых включения и исключение элементов осуществляется с одного конца. Чаще всего, принцип работы стека сравнивают со стопкой тарелок: чтобы взять вторую сверху, необходимо снять первую.

Один из основных способов применения стека связан с вызовом подпрограмм рекурсии. Система или подпрограмма должна помнить место, где произведен вызов, чтобы туда вернуться после того, как функция завершит работу. А также должна сохранять в стеке все локальные переменные и регистры. Для того чтобы вызвавшая подпрограмма могла продолжать свою работу после того, как вызываема подпрограмма завершила свою работу.

Дерево вызова подпрограмм – (связь между стеком и вызовом подпрограмм). Древовидная схема показывает порядок, в котором вызываются подпрограммы. Главная программа представлена в виде корня. Те функции, которые вызываются из нее, представляются в виде узлов над корнем. Если в тексте вызов встречается несколько раз, но в цикле, то в дереве несколько ответвлений. Если в тексте вызов встречается несколько раз, но в операторе условия или выбора, то в дереве будет одна вершина.

30. Хвостовая рекурсия.

Специальный случай рекурсии, при котором рекурсивный вызов функции самой себя является ее последней операцией.

31. Алгоритм прохождения (обхода) деревьев в глубину.

При поиске в глубину развертывается самый главный узел в текущей сын -> лист периферии поиска. Прохождение в глубину может выполняться в прямом и обратном порядках.

32. Алгоритм прохождения (обхода) деревьев в ширину.

В начале развертывается корневой узел, затем преемники корня, затем преемники этих преемников и т.д.

33. Двунаправленный поиск.

Если нам известна начальная и конечная вершина, то мы можем сократить поиск, запустив поиск из начальной в конечную вершину. Поиск заканчивается только в том случае, когда обнаруживается вершина на периферии двух поисков.

34. Алгоритм AI-поиска.

- Начальное состояние;

- Описание возможных действий;

- Проверка цели;

- Функция стоимости пути;

35. Рекурсия и задачи удовлетворения ограничениям.

Задача о ферзях:

Первая инкрементная формулировка:

1. Состояние – любое расположение ферзей на доске в количестве от 0 до N;

2. Начальное состояние – отсутствие ферзей на доске;

3. Функция определения приемника – установка ферзя на любую пустую клетку;

4. Проверка цели;

Вторая формулировка:

1. Состояние – расположение с n ферзями (0<=n<=N) по одному ферзю в каждой из находящихся слева n вертикалей.

2. Начальное состояние – отсутствие ферзей на доске.

3. Функция определения приемника. Установка ферзя на любой клетке в находящейся слева пустой вертикали таким образом, чтобы он не был атакован другими.

4. Проверка цели.

36. Рекурсия и решение головоломок.

Игра в «8» (аналог «15»).

1. Состояние – местонахождение каждой из восьми фишек.

2. Начальное состояние – любое состояние.

3. Функция определения приемника – результат попыток осуществления указанных 4 действий.

4. Проверка цели.

5. Стоимость пути – каждый этап стоит 1, стоимость пути = сумме этапов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]