Соединить 2 списка

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
anchoys0
Сообщения: 1
Зарегистрирован: 28 апр 2015, 19:10

28 апр 2015, 19:18

Здравствуйте! Помогите пожалуйста с задачей на Паскале:
Описать процедуру, которая в конец однонаправленного списка L1 будет добавлять все элементы однонаправленного списка L2
Вот что у меня получилось:
type list=^elem;
elem=record
info:integer;
next:list;
end;

procedure dob(Var h1:list);
var g,d,h2, l:list; y:integer;
begin
l:=h1;
Writeln('Введите 2 список');
new(g);
readln(y);
g^.info:=y;
h2:=g;
readln(y);
while(y<>0) do begin
new (d);
d^.info:=y;
g^.next:=g;
g:=d;
readln(y);
end;
g^.next:=nil;
g:=h2;
while l^.next<>nil do l:=l^.next;
l^.next:=h2;
end;
{Основная программа}
var p,g,h:list; x:integer;
begin
{Ввод 1 списка}
Writeln('Введите список');
new(p);
readln(x);
p^.info:=x;
h:=p;
readln(x);
while(x<>0) do begin
new (g);
g^.info:=x;
p^.next:=g;
p:=g;
readln(x);
end;
p^.next:=nil;
p:=h;
dob(h);
writeln('Список после обработки:');
p:=h;
while p<>nil do begin
writeln(p^.info);
p:=p^.next;
end;
end.
Ответить