O
ovaaal
В общем начал только-только разбираться со стеками, очередями и т.п.
Смысл, то понятен, но вот реализация (т.к. я только начинаю) хромает, да что уж говорить - ползает на четвереньках .
Вот нужно выполнить такую вот довольно-таки легкую (увы пока не для меня) задачу:
"Реализовать операции работы со стеком, построенным на основе динамических структур. Распечатать символы введенной пользовательской строки в обратном порядке."
Начал я пытаться реализовать все это дело (только начало, можно сказать, что практически ничего и не сделал-то я ), но смысл улавливаю (возможно по-своему), но все же...
Как видно из кода - решил я все это делать "поэлементно", т.е. не строку целиком, а символы по отдельности заносить/выносить в стек, как-то так...
Прошу помощи
Смысл, то понятен, но вот реализация (т.к. я только начинаю) хромает, да что уж говорить - ползает на четвереньках .
Вот нужно выполнить такую вот довольно-таки легкую (увы пока не для меня) задачу:
"Реализовать операции работы со стеком, построенным на основе динамических структур. Распечатать символы введенной пользовательской строки в обратном порядке."
Начал я пытаться реализовать все это дело (только начало, можно сказать, что практически ничего и не сделал-то я ), но смысл улавливаю (возможно по-своему), но все же...
Код:
program stack_dm;
uses crt;
type
nodeptr=^nodetype;
nodetype=record
number:char;
nextnode:nodeptr;
end;
var stack:nodeptr;
invalue,ch:char;
l,l2:string;
i:byte;
k:integer;
procedure push(var st:nodeptr; value:char);
var
p:nodeptr;
begin
new(p);
p^.number:=value;
p^.nextnode:=st;
st:=p;
end;
procedure write_stack(stack:nodeptr);
var
p:nodeptr;
begin
p:=stack;
while p<>nil do
begin
write(p^.number:3);
p:=p^.nextnode;
end;
end;
begin
clrscr;
stack^.nextnode:=nil;
writeln('vvedite stek');
read(l);
k:=length(l);
for i:=1 to k do
begin
push(stack,l[i]);
read(l2[i]);
end;
write_stack(stack);
readkey;
end.
Прошу помощи