Loading...
mihayloff14 avatar mihayloff14 824 Точки
Best Answer

Идеята на трета задача е да имплементираш собствено Binary Tree. Би трябвало да изглежда така:

BinaryTree

Като цяло идеята е, че имаш една структура - Дърво, която има TreeNode. И този TreeNode има два собствени TreeNode-ове, които рекурсивно имат свои собствени такива и т.н.

Та общо взето, вида на TreeNode е - LeftNode, RightNode, Value. Имайки това предвид, от там насетне трябва да имплементираш различните логики за търсене на неща от структурата, за вмъкване на такива, махане и т.н (извършват се рекурсивно). Единствено структурата BinaryTree има един node, който е MainNode или Root.

Ето примерен сценарий:

Имаш празно дърво. Добавяш му стойност 5:

Дървото проверява дали MainNode-а му е null - Ако е, създай нов node със стойност 5 и два празни TreeNode-а.

След това добавяш стойност 9:

Дървото проверява дали MainNode e null - не е, следователно сравнява стойностите му. Ако е по-голяма прави същата операция за RightNode-а на текущия Node. Ако е по-малко, прилага операция на левия node.

В случая - MainNode не е null. Сравнява стойностите на MainNode и тази, която искаш да Add-неш. По-голяма е, следователно прави същото рекурсивно за дясната част на текущия node. Тъй като тя е null, тя става нов node със стойност 9.

Останалите операции правят нещо подобно с някои изключения като махането на елемент например което е по-сложно.

Ето и мое решение на задачата:

CustomTree

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

3
14/02/2015 19:14:05
ph.kolarov avatar ph.kolarov 63 Точки

Може ли малко помощ... ?

Някаква идея защо не мога да бутна Payment в Customer....

http://pastebin.com/EUmVvMQd

 

 

0
a.angelov avatar a.angelov 1316 Точки

Не препокриваш ли името Payments като казваш: string Payments = this.Payments.ToString();

0
ph.kolarov avatar ph.kolarov 63 Точки

В смисъл... как така го препокривам?

Когато направя лист в мейн метода всичко работи. Обаче през класа нестава и не знам защо...

0
a.angelov avatar a.angelov 1316 Точки

В ToString метода имаш променлива: string Payments, имаш същото име и на пропъртито public List<Payment> Payments { get; set; }

Това имам в предвид.

0
19/02/2015 21:17:12
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Колеги, някой да забеляза, че са сменили домашното за Common Type System? Сега като тръгнах да оценявам домашно от тази тема и свалих отново word файла със задачите с изненада установих, че първа е допълнителна теоретична задача, за която трябва да изпратим txt файл. Някой има ли представа кога са вмъкналитази задача?

 

1
Filkolev avatar Filkolev 4482 Точки

Кофти... Въобще не съм разбрал. Скоро е било предполагам.

Не съм почнал да оценявам домашни от темата, чудя се дали да отнемам точки за липсваща 1-ва задача при положение, че дори не знаех до преди 5 минути, че има такава.

0
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Аз тотално я игнорирам тази първа задача при оценката. В понеделник започнах да си пиша това домашно, т.е. 1 ден преди крайния срок и свалих заданието от сайта и тази задача не фигурираше. Доста е тъпо така в последния момента да се сменя, без дори по някакъв начин да ни уведомят. 

0
Filkolev avatar Filkolev 4482 Точки

Може би се е предвиждало задачата да е за следващия випуск.

Но при промени - според мен задължително трябва да ни уведомяват, понеже доста хора, за да си управляват по-добре времето, работят основно с условията от предния випуск.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.