Според мен има грешка в самия замисъл на кода, тъй като конструктора,
който приема само 1 параметър задава по подразбиране стойност "null"
на левия и десния наследник на дадения корен, а в същото време има
проверка, при която ако се зададе стойност null на левия/десния
наследник се хвърля exception, а и при самата инициализация на дървото
в примера се задава стойност null на един от наследниците.
for (int j = 0; j < vertices.GetLength(1); i++)
{
if (vertices[i,j] == 1)
{
successors.Add(j);
}
}
не трябва ли да е j++?
On 17 Ян, 14:23, Mario Stoilov <chakal...@gmail.com> wrote:
> Здравейте,
> На 632 страница кодът, който е даден "Обхождане на двоично дърво с
> рекурсия - пример" при компилация крашва (хвърля exception) и не дава
би трябвало Tree<E> да е Tree<T> тоест:
/// Shows a sample usage of the Tree<T> class
На стр. 625
Тази информация се използва вътрешно в нашия клас и ни трябва в метода
AddChild(Tree<E> child)
трябва да стане:
Тази информация се използва вътрешно в нашия клас и ни трябва в метода
AddChild(Tree<T> child)
На стр. 625
В класа Tree<Т> e реализиран и методът TraverseDFS(), който извиква
частния метод PrintDFS(TreeNode<E> root, string spaces), който обхожда
дървото в дълбочина и извежда на стандартния изход елементите му, така
че нагледно да се изобрази дървовидната структура чрез отместване
надясно (с добавяне на интервали).
трябва да стане:
В класа Tree<Т> e реализиран и методът TraverseDFS(), който извиква
частния метод PrintDFS(TreeNode<T> root, string spaces), който обхожда
дървото в дълбочина и извежда на стандартния изход елементите му, така
че нагледно да се изобрази дървовидната структура чрез отместване
надясно (с добавяне на интервали).
На стр. 625
Така позволяваме подаването на произволен брой аргументи от тип
Tree<E> (поддървета).
трябва да стане:
Така позволяваме подаването на произволен брой аргументи от тип
Tree<T> (поддървета).
На стр. 642
Дървото само по себе си като структура се състои от един корен от тип
BinaryTreeNode, който вътрешно съдържа наследниците си - съответно ляв
и десен, те вътрешно техните наследници и така рекурсивно надолу
докато се стигне до листата.
Може би трябва да се промени, за да е по-ясно:
Дървото само по себе си като структура се състои от един корен от тип
BinaryTreeNode, който вътрешно съдържа наследниците си - съответно ляв
и десен, те вътрешно също съдържат техните наследници и така
рекурсивно надолу докато се стигне до листата.