Решение задач при помощи структур данных (стеки, очереди)

Очередь (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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.