Задача за дървета!


0
Здравейте, имам нужда от помощ за една задача,ако някой може да даде насока ще е супер.Това е задачата: http://www.universumerp.com/content/java-dev-s2



Отговори



5
От това което виждам си кандидатствал във фирма за Java програмист. В това няма лошо. Задаваш въпрос във форума и очакваш помощ - и в това няма лошо. Лошото е, ако търсиш някой да ти реши задачата, защото така се опитваш да излъжеш колегите, при които кандидатстваш.
Ако искаш само насока - тогава мога да ти помогна с няколко видеа от наши лекции по темата, от които можеш да комбинираш знания и да си решиш задачата:
http://telerikacademy.com/Courses/Courses/Details/186
На този линк има доста лекции, тези от тях които ще ти помогнат са лекциите за дървета и обхождане, както и задачите към лекциите (за които също има видеа) даже мисля че една от тях е доста подобна на твоята (с изключение на четенето от файл).
Поздрави.

от Nikolay.IT (39117 точки)


0
Защо всички тръгвате така негативно?Не искам никой да ми решава никакви задачи.Гледал съм много твои клипове,дори съм ти фен Николай.Основната задача си я направих за кандидатстването за работа.Тази не ми е задължителна и ми се иска да се справя и с нея.Ако можете да дадете съвет ок,ако не,здраве да е.Ще си махна поста и това е.Благодаря за линка.Ще ми е от полза.


1
Не целя нито да се заяждам нито да поставям под съмнение знанията ти :) Просто тук има прекалено много хора, които се регистрират и пишат "решете ми задачата". Твоят случай не е такъв, но за всеки случай съм написал първия параграф.

от Nikolay.IT (39117 точки)



0

Мога да ти дам една примерна имплементация на структурата от данни "дърво", ако искаш:
 

public class Tree<T>
    {
        public List<Tree<T>> Children { get; set; }
        public T Value { get; set; }
        public Tree<T> Parent { get; set; }
 
        public Tree(T value)
        {
            this.Value = value;
            this.Children = new List<Tree<T>>();
        }
 
        public static void BondTrees(Tree<T> parent, Tree<T> child)
        {
            parent.Children.Add(child);
            child.Parent = parent;
        }
 
        public int Depth
        {
            get
            {
                if (this.Parent == null)
                {
                    return 1;
                }
                else
                {
                    return this.Parent.Depth + 1;
                }
            }
        }
 
        public List<Tree<T>> PathToThis()
        {
 
            var path = new List<Tree<T>>();
            var currentLeaf = this;
            while (currentLeaf != null)
            {
                path.Add(currentLeaf);
                currentLeaf = currentLeaf.Parent;
            }
            path.Reverse();
            return path;
        }
    }
 
1. Възстановяване на дървото: Да речем, че T ще бъде клас, който съдържа номера на върха и служебната информация. Тях ще си ги набуташ в един List<Tree<T>>. За всеки елемент от списъка намираш друг елемент от списъка, чийто номер съвпада с номера на родителя на текущия елемент и върху тези 2 елемента изпълняваш метода BondTrees(parent, child), това би трябвало да създаде дървовидната структура.
 
2. За Всеки елемент от дървото проверяваш дали всичките му деца нямат свои деца и, ако нямат значи върха изпълнява условието. 
 
Надявам се да съм бил от полза.

от TaoTao (599 точки)


0
Thanks TaoTao :)


0
Йор Уелкъм!

от TaoTao (599 точки)