Помощь в написании студенческих работ
Антистрессовый сервис

Разработка структур данных и алгоритмов

РефератПомощь в написанииУзнать стоимостьмоей работы

Модель структуры данных Для определения представления абстрактных структуры данных, необходимо проанализировать набор «элементарных «операций над последовательностью, полученных при разработке алгоритма. Проверяем, пуста ли очередь, ЕСЛИ да, ТО ставим указатель начала очереди на первый созданный элемент ИНАЧЕ, ставим созданный элемент в конец очереди. Проверяем, пуста ли очередь ЕСЛИ да… Читать ещё >

Разработка структур данных и алгоритмов (реферат, курсовая, диплом, контрольная)

алгоритмический линейный стек дек Алгоритмы.

Алгоритм программы состоит из трёх основных частей:

  • 1)Выбор необходимой задачи;
  • 2) Непосредственная реализация предложенной задачи;

Алгоритм программы:

  • 1. Ввести запрос на выполнение функции (i =1.10);
  • 1.1. Если i=1,то вызываем процедуру создания дека векторной структуры.
  • 1.1.1. Заносим данные массива в память.

Проверяем, пуста ли очередь ЕСЛИ да, ТО ставим указатель начала очереди на первый созданный элемент ИНАЧЕ, ставим созданный элемент в конец очереди.

Переносим указатель конца очереди на последний элемент.

  • 1.1.2. Водим добавляемый элемент и заносим его в голову DOB (head, tail, s).
  • 1.1.3. Водим элемент выборкиg.

ЕСЛИ такой элемент существует, ТО выводится информация о его существовании, ИНАЧЕ, выводится информация о его отсутствии.

  • 1.2. Если i=2,то вызываем процедуру создания дека векторной структуры с ограниченным входом.
  • 1.2.1 Заносим данные массива в память .

Проверяем, пуста ли очередь.

ЕСЛИ да, ТО ставим указатель начала очереди на первый созданный элемент, ИНАЧЕ, ставим созданный элемент в конец очереди.

Переносим указатель конца очереди на последний элемент.

  • 2.2. Водим добавляемый элемент и заносим его в хвостDOB (head, tail, s).
  • 1.2.3. Водим элемент выборкиg.

Если такой элемент существует, то выводится информация о его существовании, иначе выводится информация о его отсутствии.

  • 1.3 Если i=3,то вызываем процедуру создания дека векторной структуры с ограниченным выходом.
  • 1.3.1. Заносим данные массива в память.

Проверяем, пуста ли очередь.

ЕСЛИ да, ТО ставим указатель начала очереди на первый созданный элемент, ИНАЧЕ, ставим созданный элемент в конец очереди.

Переносим указатель конца очереди на последний элемент.

  • 1.3.2. Вводим добавляемый элемент и заносим его в голову или в хвостDOB (head, tail, s).
  • 1.3.3. Вводим элемент выборкиg.

Если такой элемент существует, то выводится информация о его существовании, иначе выводится информация о его отсутствии.

  • 1.4. Если i=4,то вызываем процедуру создания очереди векторной структуры .
  • 1.4.1. Заносим данные массива.

Проверяем, пуста ли очередь ЕСЛИ да, ТО ставим указатель начала очереди на первый созданный элемент ИНАЧЕ, ставим созданный элемент в конец очереди.

Переносим указатель конца очереди на последний элемент.

  • 1.4.2 водим добавляемый элемент и заносим его в хвост DOB (head, tail, s).
  • 1.4.3 водим элемент выборки g.

Если такой элемент существует, то выводится информация о его существовании, иначе выводится информация о его отсутствии.

1.5. Если i=5,то вызываем процедуру создания стека односвязной списковой структуры.

1.5.1. Заносим вводимый элемент в память, для этого:

Ставим созданный элемент в вершину стека.

Переносим ссылку на вершину стека.

1.5.2 водим добавляемый элемент и заносим его в голову DOB (head, tail, s).

1.5.3 Водим элемент выборкиg.

Если такой элемент существует, то выводится информация о его существовании, иначе выводится информация о его отсутствии.

  • 1.6. Если i=6,то вызываем процедуру создания стека двусвязной списковой структуры. 1.6.1 Заносим вводимый элемент в память, для этого:
  • 1)Устанавливаем ссылку next узла u на голову существующего списка и его ссылку pred в NiL.
  • 2) установить ссылку pred бывшего первого узла (если он существовал) на u
  • 3) установить голову списка на новый узел;
  • 4) если в списке не было ни одного элемента, хвост списка также устанавливается на новый узел.
  • 1.6.2. Водим добавляемый элемент и заносим его в голову
  • 1.6.3. Водим элемент выборки.

Если такой элемент существует, то выводится информация о его существовании, иначе выводится информация о его отсутствии.

  • 1.7. Если i=7,то вызываем процедуру создания очереди односвязной списковой структуры.
  • 1.7.1. Заносим данные, вводимые с клавиатуры, в память, для этого:

Проверяем, пуста ли очередь, ЕСЛИ да, ТО ставим указатель начала очереди на первый созданный элемент ИНАЧЕ, ставим созданный элемент в конец очереди.

Переносим указатель конца очереди на последний элемент.

1.4.2. Водим добавляемый элемент и заносим его в хвост.

1.4.3.Водим элемент выборки.

Если такой элемент существует, то выводится информация о его существовании, иначе выводится информация о его отсутствии.

  • 1.8. Если i=8, то вызываем процедуру создания очереди двусвязной списковой структуры.
  • 1.4.1. Заносим данные вводимые с клавиатуры в память, для этого:
  • 1)Устанавливаем ссылку pred узла u на хвост существующего списка и его ссылку Nextв NiL.
  • 2) установить ссылку nextбывшего первого узла (если он существовал) на u
  • 3) установить хвост списка на новый узел;
  • 4) если в списке не было ни одного элемента, голова списка также устанавливается на новый узел.
  • 1.8.2. Водим добавляемый элемент и заносим его в хвост
  • 1.8.3. Водим элемент выборки.

Если такой элемент существует, то выводится информация о его существовании, иначе выводится информация о его отсутствии.

  • 1.9. Если i=9,то вызываем процедуру создания очереди с приорететом односвязной списковой структуры .
  • 1.9.1. Заносим данные вводимые с клавиатуры в память, в неубывающей последовательности, для этого:

Проверяем, пуста ли очередь.

ЕСЛИ да, ТО ставим указатель начала очереди на первый созданный элемент, ИНАЧЕ, ставим созданный элемент в конец очереди.

Переносим указатель конца очереди на последний элемент.

1.9.2 Водим добавляемый элемент S.

ЕСЛИ добавляемый элемент меньше Head (головы),.

ТО Head:=s,.

ИНАЧЕ, ПОКАHEADnil выполнить ЕСЛИ предыдущего.

ТО добавление происходит в середину, ИНАЧЕ, ЕСЛИ S>предыдущего, а указатель на следующий =nil,

ТО добавление происходит в конец, ВСЕ ЕСЛИ.

1.9.3. Водим элемент выборки.

Если такой элемент существует, то выводится информация о его существовании, иначе выводится информация о его отсутствии.

1.10. Если i=10,то вызываем процедуру создания очереди с приоритетом односвязной списковой структуры

1.10.1. Заносим данные вводимые с клавиатуры в память, в неубывающем порядке, для этого:

  • 1)Устанавливаем ссылку pred узла u на хвост существующего списка и его ссылку Nextв NiL.
  • 2) установить ссылку nextбывшего первого узла (если он существовал) на u
  • 3) установить хвост списка на новый узел;
  • 4) если в списке не было ни одного элемента, голова списка также устанавливается на новый узел.
  • 1.10.2. Водим добавляемый элемент.

ЕСЛИ добавляемый элемент меньше Head (головы),

ТО Head:=s,

ИНАЧЕ, ПОКАHEADnil выполнить

ЕСЛИ предыдущего

ТО добавление происходит в середину,

ИНАЧЕ

ЕСЛИS>предыдущего, а указатель на следующий =nil,

ТО добавление происходит в конец, ВСЁ ЕСЛИ

1.10.3. Водим элемент выборки.

Если такой элемент существует, то выводится информация о его существовании, иначе выводится информация о его отсутствии.

Модель структуры данных Для определения представления абстрактных структуры данных, необходимо проанализировать набор «элементарных «операций над последовательностью, полученных при разработке алгоритма.

  • 1. Набор операций соответствует линейному списку типа Л1 и Л2 список.
  • 2. Над линейным списком выполняются операции редактирования, значит, для его представления лучше использовать связанную память.

Вывод: для представления последовательности будем использовать Л1 и Л2-списки, реализованные в связной памяти.

Структура программы и интерфейс модулей

type

Link=^st;{тип указатель на узел памяти}

st=record

elem:integer; {поле данных}

next:Link;{указатель на следующий узел}

end;

const a: array[1.5] of integer=(2,3,4,5,6);

proceduredek1 ;{процедура создания дека векторной структуры}

{процедура создания}

procedure Input (var Head1, Tail1:Link;a:integer);

{процедура добавления}

Procedure dob (Var head1, tail1: link; c: integer);

{Процедура вывода}

procedure out (Head1:Link);

{Процедура выборки}

procedurepoisk (Head1:Link; b: integer);

vark:integer;

end;

proceduredek2 ;{процедура создания дека векторной структурыс ограниченным входом}

{процедура создания}

procedure Input (var Head1, Tail1:Link;a:integer);

{процедура добавления}

Procedure dob (Var head1, tail1: link; c: integer);

{Процедура вывода}

procedure out (Head1:Link);

{Процедура выборки}

procedurepoisk (Head1:Link; b: integer);

vark:integer;

end;

proceduredek3 ;{процедура создания дека векторной структуры с ограниченным выходом}

{процедура создания}

procedure Input (var Head1, Tail1:Link;a:integer);

{процедура добавления}

Procedure dob (Var head1, tail1: link; c: integer);

{Процедура вывода}

procedure out (Head1:Link);

{Процедура выборки}

procedurepoisk (Head1:Link; b: integer);

vark:integer;

end;

procedureoch_vec;{процедура создания очереди векторной структуры}

{процедурас оздания}

procedure Input (var Head1, Tail1:Link;a:integer);

{процедура добавления}

Procedure dob (Var head1, tail1: link; c: integer);

{Процедура вывода}

procedure out (Head1:Link);

{Процедура выборки}

procedurepoisk (Head1:Link; b: integer);

vark:integer;

end;

procedurestek1;{процедура создания стека односвязной списковой структуры}

{процедура создания}

procedure Input (var Head1: Link;a:integer);

{процедура добавления}

Procedure dob (Var head1,: link; c: integer);

{Процедура вывода}

procedure out (Head1:Link);

{Процедура выборки}

procedurepoisk (Head1:Link; b: integer);

vark:integer;

end;

procedure ;{процедура создания стека двусвязной списковой структуры }

{процедура создания}

procedure Input (var Head1: Link;a:integer);

{процедура добавления}

Procedure dob (Var head1: link; c: integer);

{Процедура вывода}

procedure out (Head1:Link);

{Процедура выборки}

procedurepoisk (Head1:Link; b: integer);

vark:integer;

end;

procedureoch1;{процедура создания очереди односвязной списковой структуры}

{процедура создания}

procedure Input (var Head1, Tail1:Link;a:integer);

{процедура добавления}

Procedure dob (Var head1, tail1: link; c: integer);

{Процедура вывода}

procedure out (Head1:Link);

{Процедура выборки}

procedurepoisk (Head1:Link; b: integer);

vark:integer;

end;

procedureoch2;{процедура создания очереди двусвязной списковой структуры}

{процедура создания}

procedure Input (var Head1, Tail1:Link;a:integer);

{процедура добавления}

Procedure dob (Var head1, tail1: link; c: integer);

{Процедура вывода}

procedure out (Head1:Link);

{Процедура выборки}

procedurepoisk (Head1:Link; b: integer);

vark:integer;

end;

procedureoch_prio;{процедура создания очереди с приоритетом односвязной списковой структуры}

{процедура создания}

procedure Input (var Head1, Tail1:Link;a:integer);

{процедура добавления}

Procedure dob (Var head1, tail1: link; c: integer);

{Процедура вывода}

procedure out (Head1:Link);

{Процедура выборки}

procedurepoisk (Head1:Link; b: integer);

vark:integer;

end;

procedureoch_prio2;{процедура создания очереди с приоритетом двусвязной списковой структуры}

{процедура создания}

procedure Input (var Head1, Tail1:Link;a:integer);

{процедура добавления}

Procedure dob (Var head1, tail1: link; c: integer);

{Процедура вывода}

procedure out (Head1:Link);

{Процедура выборки}

procedurepoisk (Head1:Link; b: integer);

vark:integer;

end;

Показать весь текст
Заполнить форму текущей работой