Даны две непустые очереди; адреса начала и конца первой равны P1 и P2, а второй - P3 и P4. Элементы каждой из очередей упорядочены по возрастанию (в направлении от начала очереди к концу). Объеденить очереди в одну с сохранением упорядочености элементов. Вывести указатели P5 и P6 на начало и конец полученной очереди. Операции выделения и освобождения памяти не использовать, поля data не изменять.
мисс_граффити
14.04.2007 23:14
ищи по форуму сортировку слиянием....
Ilius
15.04.2007 1:50
я уже искал и не нашел
Ilius
15.04.2007 16:17
Может кто-нибуть поможет а то уже скоро сдавать надо, а я ничего не понимаю в этой задаче
мисс_граффити
15.04.2007 16:40
Сами очереди (которые даны) реализуй для начала. Покажи код.
Ilius
17.04.2007 0:19
Я вообще без понятия как ее делать(просто пропустил эту тему) может решит кто-нибудь?
Гость
23.04.2007 17:08
Ну пожалуста кто хорошо в динамике шарит помогите!
Да спасибо это канешно хорошо но разве очереди и списки одно и тоже
klem4
23.04.2007 22:47
Виноват, конечно нет ... Хотя структуры то эти похожи и реализация мне кажется не сильно отличаться будет ... сам не пробовал сделать ?
мисс_граффити
23.04.2007 22:52
я бы сказала, подход должен быть таким: очередь - это список, для которого определены операции добавления в конец и убирания из начала. смотрим первые элементы первой и второй очередей. берем меньший, добавляем его в третью очередь (пока пустую), удаляя из его старой. опять смотрим первые элементы... пока одна из очередей не кончится
Как реализовать не ООП очередь - см. FAQ -> Динамические структуры данных
Ilius
13.05.2007 16:21
Проверте пожалуста правильно ли решено:
program ochered_n15;
type och=^elem;
elem=record
data:char;
next:och
end;
var p1,p2,p3,p4,p5,p6:och;
im,i1,i2:char;
j,k:integer;
procedure v(b,e:och;i:char);
var x:och;
begin x^.data:=i;
x^.next:=nil;
if b=nilthen b:=x
else e^.next:=x;
e:=x
end;
procedure iz(b,e:och;i:char);
var x:och;
beginif b<>nilthenbegin i:=b^.data;
x:=b;
b:=b^.next;
dispose(x)
end;
end;
begin j:=-1; k:=0;
repeat writeln('введите элемент первой очереди, окончание ввода - "?"');
readln(i1);
v(p1,p2,i1);
j:=j+1;
until i1='?';
iz(p1,p2,i1);
repeat writeln('введите элемент второй очереди, окончание ввода - количество элементов очередей равно');
readln(i2);
v(p3,p4,i2);
k:=k+1;
until j=k;
repeat
iz(p1,p2,im);
v(p5,p6,im);
writeln(im);
iz(p3,p4,im);
v(p5,p6,im);
writeln(im);
k:=k+1;
until p1=nil;
end.
Ilius
27.05.2007 22:13
Тут что то с сортировкой не то может поможите упорядочить по возрастанию плз.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.