- Задание на 3
- Написать модуль Queues, реализующий очередь через списки
- TQueue -- очередь
- procedure init(var q : TQueue);
- инициализация перед первым использованием
- procedure enqueue(var q : TQueue; const x : TData);
- добавить элемент в очередь
- function dequeue(var q : TQueue) : TData;
- удалить из очереди элемент, добавленный раньше всех
- и вернуть его
- function isEmpty(const q : TQueue) : Boolean;
- true -- если очередь пуста
- false -- если не пуста
- Задание на 4
- Написать функцию поиска в ширину (TField -- двумерный массив чисел: 0 -- свободное место, 1 -- стенка)
function search(var f : TField; x, y : Integer; fx, fy : Integer) : Boolean; - возвращает true, если существует путь из (x, y) в (fx, fy)
- возвращает false, если пути нет
- Задание на 5
- Написать программу, находящую количество компонент связности на данном поле
- компонента связности -- максимальная область, где из каждой клетки в каждую существует путь по клеткам "одного цвета" (с одним числовым значением)
- ДЗ
- расширить функцию search так, чтобы она возвращала сам путь -- список координат клеток, через которые нужно пройти
- Дополнительные задачи
|
|