[HomeWork] Структури от данни - Trees and Tree-Like Structures
Здравейте, ще има ли домашно за тзи тема? Защото за сега няма домашно?
Здравейте, ще има ли домашно за тзи тема? Защото за сега няма домашно?
Снощи на лекцията Наков спомена, че още не е довършил условието на домашното. Така че ще има, но малко ще се забави.
Домашното е вече качено. Обаче нещо не ми харесва в условието на първа задача. Понеже не е посочено никъде, че дървото е наредено се обезсмисля да се иска в условието leftmost за последните три подточки. Или ме поправете, ако греша нещо!
Колега мисля, че целта на тези думи са да се изкара първото срещнато. И не, дървото не мисля, че е наредено.
Здравейте, Колеги
Малко офтопик. Само аз ли виждам грешните примери на първа задача ?
Не си само ти.
Един въпрос към първа задача -
" Write a program to read the tree from the console and find:
Това като тръгнем от корена ли? Защото примера е като тръгнем от корена (тоест височината на дървото ще е longest path). Ако можем да се движим само надолу от корена към листата, тогава това е най-дългият път. Ако обаче можем да се движим и от листо към корена, то най-дългият път ще е между две листа. Отговорите на задачата зависят от това, дори и на следващите подточки :)
Съдейки по дадения пример можем да сме сигурни, че трябва да тръгнем от корена надолу.
Здравейте,
днес успях да приключа с това домашно.
Ето и моите решения:
Днес и аз започнах да решавам домашната работа малко ми идва трудно, защото никога до този момент не съм ползвал/работил с дървета, за момента е готова само първа задача след много четене и гледане на клипове в нета.
Имам една забележка: корен на дървото на английски е root, а не rood :)
Благодаря за забележката не съм забелязал какви съм ги писал, както се казва никога не е късно да стана зарезил, не знам защо съм го кръстил така сигурно ми се е сторило естетически по издържано
Ето го и моето решение.
Незнам дали правилно съм разбрал изискването за унарния оператор минус, защото според мен примерът -2- -1 трябва да дава отговор -1, а се очаква 3. Та моят калкулатор изкарва -1.
Бих бил благодарен на коментари по първа задача, защото ми се струва, че доста непрактично я решавам.
И аз изкарах този резултат за примера от третата задача.
Според мен това е просто грешка в примерите, защото и на ръка да се сметне, отново се получава -1.
И едно домашно на Java: ТУК
Втора задача я написах, но не успях да тествам. По някаква причина не иска да прочете някои папки и се стига до NullPointerException на 35-ти ред. Пропилях много време да чета и тествам, не разбирам защо е така. Не би трябвало да е до права - програмата се стартира с моя потребител и чете мои папки. Пробвах с различни права на папките. Ако някой види грешката, ще съм благодарен.
Имах подобен проблем при други задачи, които съм правил. Може да сложиш проверка дали може папката/файла е достъпен.
Пробвах с подобна проверка, но се оказа, че прескача доста папки и по този начин обезсмисля задачата. Благодаря за съвета!
Погледнах първата ти задача . Забравил си да направиш частта за LeafNodes.
И също като принтираш нодовете на middleNodes сортирани ли са ? Не съм много на ти с ламбда изразите, но мисля че не са ти сортирани.
Имам един структурен въпрос за първа задача на домашното - защо методите за намиране на node-ове - root, middle, leaf - са статични? По този начин ние в рамките на програмата може да имаме само едно дърво.
Ами аз ги направих статични и в последствие ги направих да не са. Като така си реших и проблема с дженериците. Иначе при статични методи трябваше да изпозлвам обекти.
Защото при нестатични методи, трябва да има инстанция на класа в който се намират, за да се използват. Например Console.WriteLine() - това е статичен метод в класа Console - ти нямаш инстанция от тип Console, например нямаш
Console con; con.WriteLine();
А само Console.WriteLine() - защото WriteLine() се намира в класа Console и е статичен метод. По същата причина и споменатите методи са дадени като статични. Затова и Main() метода е статичен ;).
P.S. "По този начин ние в рамките на програмата може да имаме само едно дърво." - ами не, може да има много дървета, може и никакви да няма, статичният метод не лимитира броя на инстанциите на класа.
За лимита на дърветата, колегата може би има предвид, че няма да може да се оперира с повече от едно.
След създаването на 1вото дърво, изпозлването на статичен речник(Use a dictionary to map nodes by their value.). Всеки нод ще се закача за съществуваш при съвпадение на стпойностите.
Поне при моята реализация така се получаваше със статични методи и nodeByValue. И така примерно няма да може да намери 1вия нод (по условие без родител). Може да изведе и лист от нодове без родител при повече от 1 дърво.
Споделям и моето решение на първа задача. Използвала съм hint-овете от домашното и имплементацията на Tree<T> от лаба.
Реших да си сваля Visual Studio 2015 днес и в кода съм използвала някои от новите неща в C#6 (да не се чудите как са направени някои "магийки").
Доста спретнати и кратки решения имаш. На места вкарваш синтаксис, който не бях виждал.