Нужно из них сохдать третий тоже упорядоченный.
Проблема когда я записываю второй список, то почему то переписываю первый
Вот мой код:
Uses Crt;
Type Link=^lnk;
lnk=record
Num:Integer;
next:Link;
end;
Var w,k,n,m,i,a:integer;
Copy,Res,Elem,Elen:link;
{==========================================================================}
Procedure MyReadN(var C:Link);far;
Var b:link;
Begin
inc(n);
New(b);
Readln(i);
if i<>0 then b^.num:=i;
c:=b;
If i<>0 then MyReadN(c^.next)
else c^.next:=nil;
End;
{ M ====================================================================== }
Procedure MyReadM(var t:Link);Far;
Var r:link;
Begin
inc(m);
New( R );
Readln(i);
if i<>0 then r^.num:=i;
t:=r;
If i<>0 then MyReadM(t^.next)
else t^.next:=nil;
End;
{///////////////////////////////////////////////////////////////////////////}
{///////////////////////////////////////////////////////////////////////////}
{///////////////////////////////////////////////////////////////////////////}
{///////////////////////////////////////////////////////////////////////////}
{///////////////////////////////////////////////////////////////////////////}
Begin
clrscr;
{======================= Read ===============================================}
MyReadN(Elen^.next);
Elen:=Elen^.next;
writeln('-----------------Spisok 1 with ',n-1);
for i:=1 to n-1 do
begin
write(Elen^.num,' ');
Elen:=Elen^.next;
end;
writeln;
elen:=nil;
elem:=nil;
elem^.next:=nil;
elen^.next:=nil;
i:=0;
MyReadM(Elem^.next);
writeln('---------');
{===================== End Of REad ==========================================}
writeln;
Elem:=Elem^.next;
writeln('-------------Spisok 2 with ',m-1);
for i:=1 to m-1 do
begin
write(Elem^.num,' ');
elem:=elem^.next;
end;
writeln;
{
k:=m+n-2;
while w<k+1 do
begin
if Elem^.num=Elen^.num
then begin
Res^.num:=Elem^.num;
res:=res^.next;
Res^.num:=Elen^.num;
res:=res^.next;
inc(w);
inc(w);
elem:=elem^.next;
elen:=elen^.next;
continue;
end;
if Elem^.num<Elen^.num
then begin
Res^.num:=Elem^.num;
elem:=elem^.next;
res:=res^.next;
dec(m);
inc(w);
end
else begin
Res^.num:=Elen^.num;
elen:=elen^.next;
res:=res^.next;
dec(n);
inc(w);
end;
end;
}
{===============================================================}
{for i:=1 to w do
begin
write(res^.num,' ');
Res:=Res^.next;
end; }
writeln('=================Spisok 1 with ',n-1);
for i:=1 to n-1 do
begin
write(Elen^.num,' ');
Elen:=Elen^.next;
end;
writeln;
ReadLn;
writeln('==============================================================');
end.
Сообщение отредактировано: volvo -