Решение задач при помощи структур данных (стеки, очереди)
Очередь (queue) и стеки; структура данных, обработка (удаление) её элементов и порядок их поступления (добавления). Массивы и переменные указатели, реализация очереди с помощью массива, операции над очередями и их реализация, усовершенствования процедур.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 12.12.2009 |
Размер файла | 73,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
begin
vs:=0
End;
Function Prover(vs:integer):boolean;
Begin
if vs=0 then Prover:=true else Prover:=false
End;
Procedure Dobav(var s:stack;var vs:integer; var c:integer;
var x,y:integer);
Begin
if vs=max then begin c:=0; exit end;
vs:=vs+1;
s[1,vs]:=x;
s[2,vs]:=y;
c:=1
End;
Procedure Udal(var s:stack;var vs:integer; var c:integer);
Begin
if Prover(vs) then begin c:=0; exit end;
vs:=vs-1;
c:=0
End;
BEGIN
Pusto(s,vs);
write('n=');readln(n);
write('m=');readln(m);
for i:=1 to n do
for j:=1 to m do begin
write('a[',i,',',j,']=');
readln(a[i,j]) end;
write('Введите xn, не вводить 1 и значение n ');readln(xn);
write('Введите yn, не вводить 1 и значение m ');readln(yn);
i:=xn;
j:=yn;
k:=1;
while (i<>1) and (i<>n) and (j<1) and (j<>m) do
case k of
1:if (a[i,j-1]=1) and (a[i+1,j]=0) then begin
i:=i+1;
Dobav(s,vs,c,i,j)
end
else if a[i,j-1]=0 then
begin
j:=j-1;
Dobav(s,vs,c,i,j);
k:=4
end
else
k:=2;
2:if (a[i+1,j]=1) and (a[i,j+1]=0) then begin
j:=j+1;
Dobav(s,vs,c,i,j)
end
else if a[i+1,j]=0 then
begin
i:=i+1;
Dobav(s,vs,c,i,j);
k:=1
end
else
k:=3;
3:if (a[i,j+1]=1) and (a[i-1,j]=0) then begin
i:=i-1;
Dobav(s,vs,c,i,j)
end
else if a[i,j+1]=0 then
begin
j:=j+1;
Dobav(s,vs,c,i,j);
k:=2
end
else
k:=4;
4:if (a[i,j-1]=0) and (a[i-1,j]=1) then begin
j:=j-1;
Dobav(s,vs,c,i,j)
end
else if a[i-1,j]=0 then
begin
i:=i-1;
Dobav(s,vs,c,i,j);
k:=3
end
else
k:=1
end;
Writeln('Координаты пути:');
for i:=1 to 2 do begin
for j:=1 to vs do
write(s[i,j]:3);
writeln
end;
readln
END.
readln
END.
Задача 7. «Кладоискатель». Лабиринт задается матрицей 10*10, элементы которой равны 1 или 0. Клетка считается проходимой, если она содержит 0 и непроходимой, если она содержит 1. Начальное положение кладоискателя задается координатами одной из крайних клеток. Кладоискатель может перемещаться из одной проходимой клетки в другую, если они имеют общую сторону. Составить программу поиска и вывода кратчайшего пути кладоискателя. Местонахождение клада задается координатами одной из проходимых клеток. (На мой взгляд, это задача про робота из раздела очереди. Только в той задаче добровольно, для удобства, был выведен маршрут робота, а тут его надо найти обязательно.)
Список литературы
1. В.М. Котов, О.И. Мельников «Информатика. Методы алгоритмизации», учебное пособие для 10 - 11 классов общеобразовательной школы с углубленным изучением информатики, Минск «Народная асвета», 2000.
2. А.И. Марченко, Л.М. Марченко «Программирование в стреде Turbo Pascal 7.0», учебное пособие, Киев «Век+», Москва «Бином ниверсал», 1998.
3. В.Н.Пильщиков «Сборник упражнений по языку Паскаль», Москва «Наука», 1989.
4. А.Н. Вальвачев, В.С. Крисевич «Программирование на языке Паскаль для персональных ЭВМ», Минск «Вышэйшая школа», 1989.
Подобные документы
Понимание принципа работы очереди. Возможности обращения к первому и последнему элементов очереди. Создание очереди с помощью массива. Рассмотрение примеров использования очереди с приоритетом в программе. Формирование односвязного и двусвязного списков.
контрольная работа [345,6 K], добавлен 26.11.2020Динамічні структури даних. Списки та їх різновиди. Практична реалізація динамічних структур на мові програмування С++. Динамічна пам’ять, операції NEW та DELETE. Побудова динамічних структур з використанням стандартних шаблонів: бібліотеки Stack та Queue.
курсовая работа [72,4 K], добавлен 07.09.2010Общее понятие и специфика применения очереди в программировании. Способы реализации очереди, их сущностная характеристика. Основные проблемы в использовании списков. Представление очереди в виде массива и двух целочисленных переменных start и end.
презентация [895,9 K], добавлен 14.10.2013Основные понятия объектно-ориентированного программирования, особенности описания функций и классов. Разработка программы для работы с универсальной очередью установленного типа, добавления и удаления ее элементов и вывода содержимого очереди на экран.
курсовая работа [187,2 K], добавлен 27.08.2012Проблемы с организацией данных. Определение и классификация динамических структур данных. Линейные односвязные, двухсвязные, кольцевые списки. Очередь, стеки. Описание основных типов данных и функции для работы с ними. Листинг программы, пример ее работы.
контрольная работа [290,6 K], добавлен 17.07.2012Понятие стека как структуры данных, где элемент, занесенный первым, извлекается последним. Порядок добавления и удаления элементов списка. Реализация функций стека. Использование стека в алгоритме быстрой сортировки. Основные требования к элементам стека.
презентация [591,2 K], добавлен 22.10.2013Организация данных с помощью бинарных деревьев. Определение бинарного дерева. Упорядоченное двоичное дерево поиска и его свойства. Программная реализация добавления данных в упорядоченное двоичное дерево с использованием динамических структур данных.
курсовая работа [459,0 K], добавлен 09.08.2012Вычисление суммы положительных элементов массива. Упорядочивание элементов массива по убыванию. Решение задачи с помощью алгоритма, реализованного в среде Microsoft Visual 2008 Express. Реализация и тестирование программы. Выполнение трассировки функций.
практическая работа [146,3 K], добавлен 23.01.2015Порядок проектирования программы, демонстрирующей принцип заполнения очереди и стека и принцип удаления элементов из очереди и стека. Определение класса и всех необходимых функций. Программа на языке С, описание возможностей, используемых для алгоритма.
курсовая работа [254,3 K], добавлен 20.05.2013Очередь в циклическом массиве. Извлечение элемента из очереди. Анализ сложности алгоритма. Класс входных данных, для которых применим алгоритм или структура. Выбор средств разработки. Определение отображаемых элементов, проектирование интерфейса.
курсовая работа [299,9 K], добавлен 07.06.2014