Задача которая находится ниже объединяет две очереди в одну с чередованием элементов очередей. Немогу понять что и чем надо заменить чтобы программа упорядочивала сначала каждую очередь по возрастанию и объединяла две эти очереди в одну с сохранением упорядочености элементов по возрастанию.
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); if i<>'?' then begin v(p2^.next,i); p2:=p2^.next; j:=j+1; end 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) end.
klem4
24.05.2007 10:45
Цитата
объединяла две эти очереди в одну с сохранением упорядочености элементов по возрастанию.
Опять же тебе поможет сортировка слияниями, я думаю. Воспользуйся поиском, были приведены примеры объединения списка (или стека) этим способом. Надо только приспособить метод под очередь.
Ilius
26.05.2007 16:51
пожалуста напишите как будет выглядеть сортировка, а то я че то не нашел
Ilius
27.05.2007 16:15
Помогите пожалуста,а то завтра отчет по задаче здавать, скажите как будет выглядеть сортировка по возрастанию в этой задаче.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.