program ochered_n15;
type och=^elem;
elem=record
data:char;
next:och
end;
var p1,p2,p3,p4,p5,p6:och;
im,i1,i2:char;
j,k:integer;
procedure v(b,e:och;i:char);
var x:och;
begin x^.data:=i;
x^.next:=nil;
if b=nil then b:=x
else e^.next:=x;
e:=x
end;
procedure iz(b,e:och;i:char);
var x:och;
begin if b<>nil then
begin i:=b^.data;
x:=b;
b:=b^.next;
dispose(x)
end;
end;
begin j:=-1; k:=0;
repeat readln(i1);
v(p1,p2,i1);
j:=j+1;
until i1='?';
iz(p1,p2,i1);
repeat readln(i2);
v(p3,p4,i2);
k:=k+1;
until j=k;
repeat
iz(p1,p2,im);
v(p5,p6,im);
writeln(im);
iz(p3,p4,im);
v(p5,p6,im);
writeln(im);
k:=k+1;
until p1=nil;
end.
М | При публикации программного текста, пожалуйста, используй теги: выделить текст блоком и выбрать нужный тип кода в меню CODE над окном ввода. Лопарь |
procedure v(b,e:och;i:char);
var
x:och;
begin
x^.data:=i;
x^.next:=nil;
if b=nil then b:=x else e^.next:=x;
e:=x
end;
program ochered_n15;
type
och=^elem;
elem=record
data:char;
next:och
end;
var
p1,p2,p3,p4,p5,p6,q1,q2,t1,t2:och;
im,i:char;
j,k:integer;
procedure v(var p:och; i:char);
begin
New(p);
p^.data:=i;
p^.next:=nil;
end;
procedure Show(p:och);
begin
while p<>nil do begin
Write(p^.data,' ');
p:=p^.next
end;
WriteLn
end;
begin
j:=1;
WriteLn('Введите первый список, "?" в конце:');
ReadLn(i);
V(p1,i);
p2:=p1;
repeat
readln(i);
v(p2^.next,i);
p2:=p2^.next;
j:=j+1;
until i='?';
k:=1;
WriteLn('Введите второй список, ',j,' элементов:');
ReadLn(i);
V(p3,i);
p4:=p3;
for k:=2 to j do begin
readln(i);
v(p4^.next,i);
p4:=p4^.next;
end;
WriteLn('Первый список:');
Show(p1);
WriteLn('Второй список:');
Show(p3);
p5:=p1;
p6:=p4;
q1:=p1;
q2:=p3;
while q1<>nil do begin
t1:=q1^.next;
t2:=q2^.next;
q1^.next:=q2;
q2^.next:=t1;
q1:=t1;
q2:=t2
end;
WriteLn('Результирующий список:');
Show(p5);
WriteLn('Начало: ',Seg(p5),':',Ofs(p5));
WriteLn('Конец: ',Seg(p6),':',Ofs(p6));
ReadLn;
end.