[Homework] OOP - Common Type System
Гледам, че нещо спряхте да правите тема за всяко домашно, както беше в ниво 1, ама не схващам защо :?
03 Custom Tree - #нимоа
Коментари/Препоръки/Как да трета задача?
Гледам, че нещо спряхте да правите тема за всяко домашно, както беше в ниво 1, ама не схващам защо :?
03 Custom Tree - #нимоа
Коментари/Препоръки/Как да трета задача?
Идеята на трета задача е да имплементираш собствено Binary Tree. Би трябвало да изглежда така:
Като цяло идеята е, че имаш една структура - Дърво, която има 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.
Останалите операции правят нещо подобно с някои изключения като махането на елемент например което е по-сложно.
Ето и мое решение на задачата:
Като цяло, малко е разхвърлян кода и по-усложнен, но задачата доколкото съм я тествал работи и не ми се занимаваше да рефакторирам проекта след дългите часове, в които го правих.
Може ли малко помощ... ?
Някаква идея защо не мога да бутна Payment в Customer....
Не препокриваш ли името Payments като казваш: string Payments = this.Payments.ToString();
В смисъл... как така го препокривам?
Когато направя лист в мейн метода всичко работи. Обаче през класа нестава и не знам защо...
В ToString метода имаш променлива: string Payments, имаш същото име и на пропъртито public List<Payment> Payments { get; set; }
Това имам в предвид.
Колеги, някой да забеляза, че са сменили домашното за Common Type System? Сега като тръгнах да оценявам домашно от тази тема и свалих отново word файла със задачите с изненада установих, че първа е допълнителна теоретична задача, за която трябва да изпратим txt файл. Някой има ли представа кога са вмъкналитази задача?
Кофти... Въобще не съм разбрал. Скоро е било предполагам.
Не съм почнал да оценявам домашни от темата, чудя се дали да отнемам точки за липсваща 1-ва задача при положение, че дори не знаех до преди 5 минути, че има такава.
Аз тотално я игнорирам тази първа задача при оценката. В понеделник започнах да си пиша това домашно, т.е. 1 ден преди крайния срок и свалих заданието от сайта и тази задача не фигурираше. Доста е тъпо така в последния момента да се сменя, без дори по някакъв начин да ни уведомят.
Може би се е предвиждало задачата да е за следващия випуск.
Но при промени - според мен задължително трябва да ни уведомяват, понеже доста хора, за да си управляват по-добре времето, работят основно с условията от предния випуск.