Даны две непустые очереди; адреса начала и конца первой равны 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=nil then b:=x else e^.next:=x; e:=x end; procedure iz(b,e:och;i:char); var x:och; begin if b<>nil then begin 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
Тут что то с сортировкой не то может поможите упорядочить по возрастанию плз.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.