Показать сообщение отдельно
  (#2 (permalink)) Старый
sweeney sweeney вне форума
Member
 
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 10.12.2008
По умолчанию 17.12.2008, 02:59

Так, мне тут помогли ее почти сделать?

есть мысли, закидываем в наш стек все вагоны и начинаем с "вершины" (последнего закинутого элемента) проводить проверку на то какой это вагон, если 2-го типа то идёт вправо (предлагаю вправо и влево сделать списками), а если 1-го типа то влево, вот и вся задача...

Цитата:
Program xa;
type
stek=^vs;
vs=record
info:byte;
ukaz:stek;
end;
var
a,b,npab,lebo,nach,adr,st:stek;
i,n:integer;
begin
Writeln('koLu4ectBO BaroHoB');
write('n=');
readln(n);
b:=nil;
Writeln('BBedute tunbl Bcex BaroHoB');
new(npab);
npab^.ukaz:=nil;
nach:=npab;
writeln;
Write('HoMep --> ');
readln(npab^.info);
for i:=2 to n do
begin
new(npab^.ukaz);
npab:=npab^.ukaz;
npab^.ukaz:=nil;
writeln;
write('HoMep --> ');
readln(npab^.info);
end;
npab:=nach;
while npab<>nil do
begin
new(a);
a^.ukaz:=b;
a^.info:=npab^.info;
b:=a;
npab:=npab^.ukaz;
end;
npab:=nach;
while npab<>nil do
begin
npab^.info:=0;
npab:=npab^.ukaz;
end;
npab:=nach;
st:=b;
a:=b;
b:=a^.ukaz;
if a^.info=2 then
begin
npab^.info:=a^.info;
npab:=npab^.ukaz;
new(lebo);
lebo^.ukaz:=nil;
end
else
begin
new(lebo);
lebo^.ukaz:=nil;
lebo^.info:=a^.info;
end;
adr:=lebo;

while b<>nil do
begin
a:=b;
b:=a^.ukaz;
if a^.info=2 then
begin
npab^.info:=a^.info;
npab:=npab^.ukaz;
end
else
begin
new(lebo^.ukaz);
lebo:=lebo^.ukaz;
lebo^.ukaz:=nil;
lebo^.info:=a^.info;
end;
end;
Writeln('BaroHbl cTo9LLIUe CleBa');
lebo:=adr^.ukaz;
while lebo<>nil do
begin
Write(lebo^.info , '| ');
lebo:=lebo^.ukaz;
end;
writeln;
Writeln('BaroHbl cTo9LLIUe cnpaBa');
npab:=nach;
while npab^.info<>0 do
begin
Write('|',npab^.info , ' ');
npab:=npab^.ukaz;
end;
b:=st;
while b<>nil do
begin
a:=b;
b:=a^.ukaz;
dispose(a);
end;
lebo:=adr;
while adr<>nil do
begin
lebo:=adr;
adr:=lebo^.ukaz;
dispose(lebo);
end;
npab:=nach;
while nach<>nil do
begin
npab:=nach;
nach:=npab^.ukaz;
dispose(npab);
end;
readln;
end.
но программа вроде вот такая вот сделана)
Ответить с цитированием
Ads