=input){t.left.value=input;t.left.left=spanclass="code-keyword"null/span;t.right.right=spanclass="code-keyword"null/span;count++;}/pre/code与{体C3}和{的C4}与{C5的}添加和更改的代码是大胆的。下一步新报表添加不正确的左边和右边的分支被用来在空任务。这些任务的方式并不需要BT的构造函数设置为null已经OriginalGriff:安德烈在一定程度上是正确的,但他的解决方案不建立一个完整的树-他将覆盖任何现有的节点,当你提供。不同的值。如果你的树值是为了创建一个如树{5233}然后你需要检查已经是节点存在,然后再创建新的。此外,我也不会通过节点到您的add方法:使其工作,而不是对当前实例:{C7-}两件事情发生:1)你的数量是相当无用:它返回已被cretaed,而不是数量,这是在使用中,或在这棵树的节点总数。如果覆盖的节点(如安德烈在他的例子一样),它不会降低计数。你会更好实施Count属性算在这一点上德树的节点数目:{C8的}2)你可能不希望打印的方法-这个词在计算特定的含义。相反,考虑提供一个ToString方法返回一个字符串作为整个树:codeprelang="c#"spanclass="code-keyword"public/spanspanclass="code-keyword"override/spanspanclass="code-keyword"string/spanToString(){StringBuildersb=spanclass="code-keyword"new/spanStringBuilder();sb.Append(Value.ToString());spanclass="code-keyword"if/span(Left!=spanclass="code-keyword"null/span||Right!=spanclass="code-keyword"null/span){sb.Append(spanclass="code-string""/spanspanclass="code-string"imgsrc="/script/Forums/Images/smiley_frown.gif"align="top"alt="Frown|:("//span);spanclass="code-keyword"if/span(Left!=spanclass="code-keyword"null/span){sb.Append(Left.ToString());}sb.Append(spanclass="code-string""/spanspanclass="code-string","/span);spanclass="code-keyword"if/span(Right!=spanclass="code-keyword"null/span){sb.Append(Right.ToString());}sb.Append(spanclass="code-string""/spanspanclass="code-string")"/span);}spanclass="code-keyword"return/spansb.ToString();}/pre/code。|阿肖克Gowtham。|未分类的问答|编程通用" /> =input){t.left.value=input;t.left.left=spanclass="code-keyword"null/span;t.right.right=spanclass="code-keyword"null/span;count++;}/pre/code与{体C3}和{的C4}与{C5的}添加和更改的代码是大胆的。下一步新报表添加不正确的左边和右边的分支被用来在空任务。这些任务的方式并不需要BT的构造函数设置为null已经OriginalGriff:安德烈在一定程度上是正确的,但他的解决方案不建立一个完整的树-他将覆盖任何现有的节点,当你提供。不同的值。如果你的树值是为了创建一个如树{5233}然后你需要检查已经是节点存在,然后再创建新的。此外,我也不会通过节点到您的add方法:使其工作,而不是对当前实例:{C7-}两件事情发生:1)你的数量是相当无用:它返回已被cretaed,而不是数量,这是在使用中,或在这棵树的节点总数。如果覆盖的节点(如安德烈在他的例子一样),它不会降低计数。你会更好实施Count属性算在这一点上德树的节点数目:{C8的}2)你可能不希望打印的方法-这个词在计算特定的含义。相反,考虑提供一个ToString方法返回一个字符串作为整个树:codeprelang="c#"spanclass="code-keyword"public/spanspanclass="code-keyword"override/spanspanclass="code-keyword"string/spanToString(){StringBuildersb=spanclass="code-keyword"new/spanStringBuilder();sb.Append(Value.ToString());spanclass="code-keyword"if/span(Left!=spanclass="code-keyword"null/span||Right!=spanclass="code-keyword"null/span){sb.Append(spanclass="code-string""/spanspanclass="code-string"imgsrc="/script/Forums/Images/smiley_frown.gif"align="top"alt="Frown|:("//span);spanclass="code-keyword"if/span(Left!=spanclass="code-keyword"null/span){sb.Append(Left.ToString());}sb.Append(spanclass="code-string""/spanspanclass="code-string","/span);spanclass="code-keyword"if/span(Right!=spanclass="code-keyword"null/span){sb.Append(Right.ToString());}sb.Append(spanclass="code-string""/spanspanclass="code-string")"/span);}spanclass="code-keyword"return/spansb.ToString();}/pre/code。|阿肖克Gowtham。,未分类的问答,编程通用,orcode.com(或代码)是程序学习分享的乐圆" />
?在C#中如何实现二叉树:我尝试这样做。我做一个树类
60;
,调用此代码class BT
{
private BT left;
internal BT Left
{
get { return left; }
set { left = value; }
}
private BT right;
internal BT Right
{
get { return right; }
set { right = value; }
}
private int value;
public int Value
{
get { return this.value; }
set { this.value = value; }
}
static private int count=0;
public static int Count
{
get { return BT.count; }
set { BT.count = value; }
}
public BT()
{
left = null;
right = null;
value = 0;
}
public void Add(BT t,int input)
{
if (t.value == 0)
{
t.value = input;
t.Left = null;
t.Right= null;
count++;
}
else if(t.value>=input)
{
t.left.value = input;
t.left.left = null;
t.right.right = null;
count++;
}
else if(t.value<input)
{
t.right.value = input;
t.left.left = null;
t.right.right = null;
count++;
}
}
public void Print(BT tree)
{
Form1 o = new Form1();
if (tree.right != null)
Print(tree.right);
o.richTextBox1.AppendText(tree.value.ToString());
if (tree.left != null)
Print(tree.left);
}
}
}
{C},它提供了运行时间错误"未将对象引用设置到对象的实例。"上线t.left.value =输入;