ВУЗ:
Составители:
Рубрика:
- 26 -
procedure push (var S: stack;x:elemtype);
{ положить x в стек S с контролем переполнения}
begin
if S.top=stacksize then error('стек полон')
else begin
S.top:=S.top+1;
S.elems[S.top]:=x
end
end; {push}
procedure pop (var S: stack; var x:elemtype);
{ если стек непуст, взять из стека S верхний элемент и
присвоить его x, иначе сообщить об ошибке}
begin
if S.top=0 then error('стек пуст ')
else begin
x:=S.elems[S.top];
S.top:=S.top-1;
end
end; {pop}
После того, как программа отлажена, проверки становятся ненужными и их
следует исключить в целях повышения быстродействия программы.
Заметим, что в случаях, когда максимальный размер стека не может быть
заранее определён, лучше воспользоваться реализацией на основе динамических
цепочек. Тогда размер ограничивается только ресурсами вычислительной
среды.
Представление очереди с помощью списка с заглавным звеном
Поскольку операции вставки и удаления осуществляются на разных концах
очереди, для работы с ней удобно иметь два указателя – на заглавное и на
последнее звенья. Если очередь пуста, оба указателя ссылаются на заглавное
звено. Приведём необходимые описания.
type link =↑node; { ссылка на звено }
elemtype = … {подходящий тип элементов очереди};
node= record
elem: elemtype; {элемент }
next: link {ссылка на следующее звено}
end;
queue = record
front: link {ссылка на заглавное звено};
rear: link {ссылка на последнее звено}
end;
var Q: queue;{очередь}
procedure push (var S: stack;x:elemtype);
{ положить x в стек S с контролем переполнения}
begin
if S.top=stacksize then error('стек полон')
else begin
S.top:=S.top+1;
S.elems[S.top]:=x
end
end; {push}
procedure pop (var S: stack; var x:elemtype);
{ если стек непуст, взять из стека S верхний элемент и
присвоить его x, иначе сообщить об ошибке}
begin
if S.top=0 then error('стек пуст ')
else begin
x:=S.elems[S.top];
S.top:=S.top-1;
end
end; {pop}
После того, как программа отлажена, проверки становятся ненужными и их
следует исключить в целях повышения быстродействия программы.
Заметим, что в случаях, когда максимальный размер стека не может быть
заранее определён, лучше воспользоваться реализацией на основе динамических
цепочек. Тогда размер ограничивается только ресурсами вычислительной
среды.
Представление очереди с помощью списка с заглавным звеном
Поскольку операции вставки и удаления осуществляются на разных концах
очереди, для работы с ней удобно иметь два указателя – на заглавное и на
последнее звенья. Если очередь пуста, оба указателя ссылаются на заглавное
звено. Приведём необходимые описания.
type link =↑node; { ссылка на звено }
elemtype = … {подходящий тип элементов очереди};
node= record
elem: elemtype; {элемент }
next: link {ссылка на следующее звено}
end;
queue = record
front: link {ссылка на заглавное звено};
rear: link {ссылка на последнее звено}
end;
var Q: queue;{очередь}
- 26 -
Страницы
- « первая
- ‹ предыдущая
- …
- 24
- 25
- 26
- 27
- 28
- …
- следующая ›
- последняя »
