Форум за въпроси

Споделяне в третата задача от домашното?

Споделяне в третата задача от домашното?

от Кристиян Митов -
Number of replies: 3

Здравейте, искам да попитам какво означават пунктираните линии в примера - само за маркиране ли са или са знак, че трябва да се сподели този Node между двата списъка? Ако да, по какъв начин точно се иска да стане това, защото на картинката общо от двете пунктирани излизат 4 указателя, а реално имаме само 2. Освен това при сумата общият елемент веднъж ли се брои или 2 пъти?

In reply to Кристиян Митов

Re: Споделяне в третата задача от домашното?

от Трифон Трифонов -

Пунктираните линии показват в кои възли са снадени двата списъка. Споделянето всъщност не е само на тези два възела, а на всички, понеже сега от всеки от възлите в единия списък може да се достигне всеки възел от другия списък. В задачата не се иска да се грижите за голямата четворка, но ако променяте класа то лекции ще се наложи или да я изтриете изцяло (т.е. да се споделя памет при копиране и да не се унищожава при унищожаване на обекта) или да я напишете по-умно, така че да се усеща за споделянето. Изборът е ваш, грижата за голямата четворка не е задължително условие за тази задача.

Проблем с броя на указателите няма: погледнете внимателно и ще видите, че от всеки възел (освен крайните) излизат точно по два указателя, както би трябвало за едносвързан списък. Разликата е, че има възли към които сочат повече от два указателя, както е в обикновения двойносвързан списък. При сумата общите елементи се броят по един път.


In reply to Трифон Трифонов

Re: Споделяне в третата задача от домашното?

от Кристиян Митов -
Благодаря за отговора!

Въпросът ми беше зададен малко неясно, това, което имах предвид, е дали двата възела трябва да се слеят, т.е. да има само един възел с 5, защото в момента съм имплементирал нещата точно като на схемата, няма проблем с указатели, но има два възела 5. Ако трябва да ги направя на един, тогава ще трябва да попроменя малко нещата и вече няма да е точно като на схемата, затова питах за указателите.

In reply to Кристиян Митов

Re: Споделяне в третата задача от домашното?

от Трифон Трифонов -

Макар че срокът вече мина и с Кристиян обсъдихме въпроса на лекции, все пак да пиша и тук: не, двата възела не трябва да се сливат. Визуалната маркировка служи само, за да покаже в кои възли се снаждат двата списъка.