Вот один из возможных вариантов решения
| Код |
Type PNode=^TNode; TNode=record info:integer; next:TNode; end;
var Node1,Node2,head1,head2:PNode; string1,string2:string;
begin string1:=''; string2:='';
//создание списков Node1,Node2
head1:=Node1;//Node1,Node2 - указатели на первый элемент списка head2:=Node2;
while (Head1<>nil)and(head2<>nil)and(Head1^.info=Head2^.info) do begin Head1:=head1^.next; Head2:=head2^.next; end;
//вывод первого списка с несовпадающего элемента while head1<>nil do begin string1:=string1+inttostr(head1^.info)+' '; head1:=head1^.next; end; }эти два одинаковых цикла хорошо бы объединить в процедуру,
//вывод второго списка с несовпадающего элемента while head2<>nil do begin string2:=string2+inttostr(head2^.info)+' '; head1:=head1^.next; end;
writeln(string1); writeln(string2);
//Удаление списков и всех динамических переменных
end;
|
|