Даункинг: строительство деревьев
Я написал шип решение для базового класса построения дерева, который я создал.
Выход для первого "Добавление элемента № {0} на глубине {0}" - это элемент 0 на глубину 0, а не ожидаемый 0,1.
Это просто поразило меня, когда я писал это. Может ли это быть из-за моего даун-кастинга, хотя я отводил достаточно памяти на старте?
Код C#:
static void Main(string[] args)
{
object HeadNode = 0;
Console.WriteLine("Creating Head Node Filling Tree");
HeadNode = new Node(0, 1, HeadNode);
((Node)HeadNode).AddNode( HeadNode);
((Node)HeadNode).CountChildNodes();
Console.ReadKey();
}
public struct Node
{
List<Node> nodes;
int nCount;
int nDepth;
int nNoChildren;
object headNode;
public Node(int count, int depth, object head)
{
nodes = new List<Node>();
nNoChildren = 0;
nDepth = depth;
nCount = count;
headNode = head;
}
public int AddNode( object head)
{
while (nCount < 2 && nDepth < 3)
{
Console.WriteLine("Adding node to this object {0}", GetHashCode());
Console.WriteLine("Adding Item No {0} at the depth of {0}", nCount, nDepth);
nodes.Add(new Node(nodes.Count(), nDepth + 1, headNode));
nCount += 1;
nodes[nodes.Count() - 1].AddNode(headNode);
}
return -1;
}
1 ответ
"Выход для первого" Добавление элемента № {0} на глубину {0}"- это элемент 0 на глубину 0, а не ожидаемый 0,1".
Вы печатаете одно и то же значение дважды ({0}
в двух разных местах), как ожидалось вывести два разных значения (0 и 1).
Я думаю, вы хотите это вместо этого:
Console.WriteLine("Adding Item No {0} at the depth of {1}", nCount, nDepth);
{0}
будет заменено значением из 2-го параметра (nCount
) а также {1}
будет заменено значением из 3-го параметра (nDepth
).