C# 将默认值指定给二叉树元素列表-缺少构造函数?

C# 将默认值指定给二叉树元素列表-缺少构造函数?,c#,tree,C#,Tree,好吧,我很难弄清楚如何为列表的元素(树和节点)分配默认值,这样就不会得到NullReferenceException 该准则的基本思想是: 列表包含从树,每棵树包含2个节点,每个节点包含2个子节点。 每个节点包含名称(字符串)和大小(字符串) 代码: 类程序 { 静态void Main(字符串[]参数) { 列表树列表=新列表(); Tree newtree=新树(); Branch newbrach=新分支(); //用户可以向列表中添加任意数量的新树 //添加树时,用户可以编辑树的默认值

好吧,我很难弄清楚如何为列表的元素(树和节点)分配默认值,这样就不会得到NullReferenceException

该准则的基本思想是: 列表包含从树,每棵树包含2个节点,每个节点包含2个子节点。

每个节点包含名称(字符串)和大小(字符串)

代码:

类程序
{
静态void Main(字符串[]参数)
{
列表树列表=新列表();
Tree newtree=新树();
Branch newbrach=新分支();
//用户可以向列表中添加任意数量的新树
//添加树时,用户可以编辑树的默认值
//.....
案例2:
Add(newtree);break;//将新树添加到列表中
//.....
foreach(树列表中的树项)
{
//循环以打印出所有值
}
}
} 
类树
{
公共分支左=新分支();
公共分支权限=新分支();
}
班级面积
{
公共字符串名称;
公共字符串大小;
} 
班支部
{
公共区域面积=新区域();
公共部门权利;
公共部门左;
} 
我一定缺少某种类型的构造函数,因为如果我向列表中添加新树,并且试图通过列表[I]直接编辑它,那么左.Area.Name=。。。我得到了空引用


基本上,我想要的是——每当我向列表中添加一棵新树时,每个节点的默认值都应该设置为“空”,或者可以在以后通过循环访问来手动更改,例如,列表有两棵树,我想编辑第一棵树->列表[0]的值。Right.Area.Name=“newname”,第一棵树->列表[0].Right.Area.Size=“1000”,列表[0]。Left.Left.Area=。。。。等等。

你遗漏了重要的部分,如何填写
List[i]
?程序中有一系列操作,当用户想向列表中添加一棵新树时,它会执行创建一棵新树的部分代码,tree newtree=newtree();add将其添加到列表树列表中;这个想法是,当树被添加到列表中时,我应该能够编辑它,但是,我不能。请给出一个最小但完整的示例。您的代码看起来应该可以工作,所以问题出在您“简化”的部分。
class Program
{
    static void Main(string[] args)
    {
        List<Tree> TreeList = new List<Tree>();

        Tree newtree = new Tree();
        Branch newbrach = new Branch();

        // user can add any number of new trees to the list
        // when tree is added, user can edit the default values of the tree
        //.....
        case 2:
              TreeList.Add(newtree); break; // Adds new Tree to The list
        //.....

        foreach (Tree item in TreeList)
        {
        //loop to print out all values
        }
    }
 } 

 class Tree
 {
     public Branch Left = new Branch();
     public Branch Right = new Branch();
 }

class Area
{
    public string Name;
    public string Size;
} 

class Branch
{
    public Area Area = new Area();
    public Branch Right;
    public Branch Left;
}