0

我为我创建的一个基本的树构建类编写了一个尖峰解决方案。

第一个“在 {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;
    }
4

1 回答 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}将替换为来自第二个参数 ( nCount){1}的值,并将替换为来自第三个参数 ( nDepth) 的值。

于 2014-03-11T04:29:49.437 回答