Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ СПИСКИ

Автор: -sds- 3.05.2007 16:22


даны два непустых упорядоченных по неубыванию списка P1 и P2 . Объединить списки в один упорядоченный по неубыванию список P3, сменив соответствующим образом ссылки в P1 и P2.

Буду всем очень благодарен.

Автор: volvo 3.05.2007 16:34

В поиск... Совсем недавно решалось.

Автор: sds 3.05.2007 19:19

Решалась точно такая же или похожая???

Автор: sds 9.05.2007 1:30

Не могу найти , скиньте ссылку или помогите с кодом

Автор: volvo 9.05.2007 1:39

http://forum.pascal.net.ru/index.php?s=&showtopic=16831&view=findpost&p=98554

Автор: -sds- 22.05.2007 0:51

)вот условие:
даны два непустых упорядоченных по неубыванию списка P1 и P2 . Объединить списки в один упорядоченный по неубыванию список P3, сменив соответствующим образом ссылки в P1 и P2.

вот текст проги:
program zadacha;
type spis=^elem;
elem=record
data:integer;
next:spis;
end;
var p1,p2,p3:spis;
procedure add2head(val:integer; var list:spis);
var u:spis;
begin
new(u);
u^.data:=val;
u^.next:=list;
list:=u;
end;
procedure print(list:spis);
var i:integer;
begin
i:=0;
write('sodergimoe spiska: ');
while list<>nil do begin
write(list^.data);
if list^.next<>nil then write(', ') else writeln('.');
list:=list^.next;
inc(i);
end;
writeln('vsego ',i,' elementov');
end;
procedure abtoc(var a,b,c:spis);
var i1,i2,t:spis;
begin
if a=nil then c:=b else if b=nil then c:=a else begin
if a^.data<=b^.data then begin
i1:=a;
i2:=b;
end else begin
i1:=b;
i2:=a;
end;
c:=i1;
while (i1^.next<>nil) and (i2<>nil) do begin
if i1^.next^.data>i2^.data then begin
t:=i2;
i2:=i1^.next;
i1^.next:=t;
end;
i1:=i1^.next;
end;
if i1^.next=nil then i1^.next:=i2;
end;
end;
begin
p1:=nil;
p2:=nil;
add2head(9,p1);
add2head(5,p1);
add2head(2,p1);
add2head(1,p1);
add2head(1,p1);
print(p1);
add2head(8,p2);
add2head(4,p2);
add2head(3,p2);
add2head(0,p2);
print(p2);
abtoc(p1,p2,p3);
print(p3);
readln;
end.

А как сделать так, чтобы список p1 и p2 формировались(создавались) в процессе выполнения программы(чтобы пользователь сам их вводил)????????????

Заранее спасибо.