ВУЗ:
Составители:
Рубрика:
- 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
- …
- следующая ›
- последняя »