Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
saod.doc
Скачиваний:
9
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Блок-схема алгоритма

Текст программы:

Очередь:

uses

crt;

const

n=10;

type

ct=^celltype;

celltype=record

element:byte;

next:ct;

end;

queue=record

front:ct;

rear:ct;

end;

var

s:queue;

x:byte;

procedure insert(var q:queue;x:byte);

begin

new(q.rear^.next);

q.rear:=q.rear^.next;

q.rear^.element:=x;

q.rear^.next:=nil;

end;

procedure create(var q:queue);

var

i,x:byte;

begin

new(q.front);

q.front^.next:=nil;

q.rear:=q.front;

for i:=1 to n do

begin

x:=round(random*100);

insert(q,x);

end;

writeln('QUEUE IS CREATE.');

end;

procedure delstart(var q:queue);

begin

q.front:=q.front^.next;

end;

function remove(var q:queue):byte;

begin

remove:=q.front^.next^.element;

delstart(q);

end;

procedure printqueue(var q:queue);

var

temp:queue;

begin

writeln('QUEUE:');

temp:=q;

while temp.front^.next<>nil do

begin

write(temp.front^.next^.element,' ');

temp.front:=temp.front^.next;

end;

writeln;

end;

procedure delqueue(var q:queue);

begin

while q.front^.next<>nil do delstart(q);

writeln('QUEUE IS DELETE.');

end;

begin

clrscr;

randomize;

create(s);

printqueue(s);

x:=remove(s);

writeln('X:=',x);

printqueue(s);

delqueue(s);

readkey;

end.

Стек:

uses

crt;

const

n=10;

type

ct=^celltype;

celltype=record

element:byte;

next:ct;

end;

stack=record

top:ct;

fin:ct;

end;

var

q:stack;

x:byte;

procedure push(var s:stack);

begin

new(s.fin^.next);

s.fin:=s.fin^.next;

s.fin^.element:=round(random*100);

s.fin^.next:=nil;

end;

procedure create(var s:stack);

var

i:byte;

begin

new(s.top);

s.top^.next:=nil;

s.fin:=s.top;

for i:=1 to n do push(s);

writeln('STACK IS CREATE.');

end;

procedure pop(var s:stack);

var

temp:stack;

begin

temp:=s;

while temp.top^.next<>s.fin do temp.top:=temp.top^.next;

s.fin:=temp.top;

end;

function stacktop(var s:stack):byte;

begin

stacktop:=s.top^.next^.element;

end;

procedure printstack(var s:stack);

var

temp:stack;

begin

writeln('STACK:');

temp:=s;

while temp.top^.next<>nil do

begin

write(temp.top^.next^.element,' ');

temp.top:=temp.top^.next;

end;

writeln;

end;

procedure delstack(var s:stack);

begin

s.top^.next:=nil;

writeln('STACK IS DELETE.');

end;

begin

clrscr;

randomize;

create(q);

printstack(q);

x:=stacktop(q);

writeln('TOP:=',x);

delstack(q);

readkey;

end.

Р езультаты расчетов

Для очереди S: 64,88,62,1,56,80,64,39,62,9 результат работы функции REMOVE(S) будет следующим: X=64, S: 88,62,1,56,80,64,39,62,9.

Д ля стека Q:

6,27,96,14,76,96,35,14,63,74 результат работы функции STACKTOP(Q) будет следующим: TOP=6.

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