[HomeWork] Структури от данни - Trees and Tree-Like Structures
Здравейте, ще има ли домашно за тзи тема? Защото за сега няма домашно?
Здравейте, ще има ли домашно за тзи тема? Защото за сега няма домашно?
Ето моя вариант на домашното на Джава без последната все още: https://github.com/krachunov/softUni/tree/master/SoftwareUni/src/homeWork4
Имам едно питане. Задачата с папки и файлове я реализирах с 2 варианта на метода който обхожда. Единия е с цикъл другия рекурсивен. Конкретно проблема ми е с рекурсивния метод който ми отпечатва на конзолата това което очаквам обаче в childFolders ми слага двойно повече обекти от колкото са и не мога да разбера от къде ми идва проблема.
Ето и моето домашно: TREES
5-та и 6-та подточка на първа задача съм решил без рекурсия. Използвам това, че вече имам построен nodeByValue и метод който взима всички листа. Оттам пък от всяко едно листо до RootNode-а има единствн път, който е лесен за проследяване. Така реално излизат всикчи пътища. Условието Leftmost на тези подточки според мен не е коректно, защото зависи от реда по-който са вкарани входните данни, както и от начина на обхождане.
Трета задача мина доста леко - соред мен не засужава чак 3 звезди, но на 2-ра зациклих, защото не бях наясно точно какво се иска. Мислех си, че трябва да се използва вече направения клас Tree и в него да се набутат обекти от тип Folder, което е малко странно. В крайна сметка използвах рекусрсивната конструкция на Folder обекта. Просто е, но доста го мислех, защото не знаех как да подходя.
Колеги,
Два въпроса.
На 1-ва задача, последното подусловие - какво разбирате под subtree? Длъжни ли сме вземайки един node да вземем всичките му деца (много по-лесно като логика), или разглеждаме всички комбинации от взети/невзети деца? След като е с три звезди подозирам, че се има предвид второто, но реших да питам вие как сте подходили. Да дообясня какво имам предвид - аз под subtree разбирам и следното (гледайки примера в самото домашно): 7 -> 19 -> 12 -> 31 -> 14 -> 23. Не в тази последователност, но предполагам става ясно какво имам предвид. Например, вземайки 19 не съм длъжен да взема и 1, а разглеждам всички комбинации.
По 2-ра задача, какво приема като параметри метода, който изчислява сумата на размерите на файловете? Аз направих пропърти Path на директориите (различно от Name) и речник с ключ този path и стойност - Folder обект. При това положение метода ми приема като стринг целия път до дадена папка, а ако такъв път не е бил въведен хвърля грешка. Не можах да измисля по-умен подход, тъй като самите обекти тип Folder не ги пазя никъде, че да подам цял обект на метода.
Под subtree според мен трябва да се разбира всичко, което може да бъде получено от дървото само с едно прерязване на ребро т.е. би трябвало да е по-лесния вариант. Защо е с *** незнам. За 2-ра задача аз приемам обект от тип Folder и после рекурсивно изчислярам размера в bytes. Незнам дали точно това се иска, но не е технически проблем да приеме и стринг. Според мен така, както си го напарвил по описание изглежда да е коректно.