class BiTree
{
protected int element;
protected BiTree LeftChild;
protected BiTree RightChild;
public int Element
{
get{return element;}
set{element=value;}
}
public BiTree Left
{
get{return LeftChild;}
set{LeftChild=value;}
}
public BiTree Right
{
get{return RightChild;}
set{RightChild=value;}
}

public BiTree(int e)
{
element=e;
LeftChild=RightChild=null;
}
public BiTree()
{
element=0;
LeftChild=RightChild=null;
}


}class MainClass
{
public static void CreatTree(BiTree newtree)//先序建立2叉树,输入-1表示空结点
{
int e=0;
string a=Console.ReadLine();
e=Convert.ToInt32(a);
if(e==-1)
newtree=null;
else
{
newtree=new BiTree();
newtree.Element=e;
CreatTree(newtree.Left);
CreatTree(newtree.Right);
}
}

public static void PreOrderTraverse(BiTree newtree)// 先序遍历2叉数
           {
if(newtree!=null)
{
Console.WriteLine(newtree.Element);
PreOrderTraverse(newtree.Left);
PreOrderTraverse(newtree.Right);
}
}
public static void Main(string[] args)
{
BiTree tree=new BiTree(0);
CreatTree(tree);
Console.WriteLine("下面先须遍历该树");
PreOrderTraverse(tree);
Console.ReadLine();
}
}
运行以后我输入
3
-1
-1
按理应该输出3 可是得出的是0
始终无法编历 大家帮我分析一下 这算法是我根据书上的C语言算法自己修改的. 是哪里出错了呢??