编辑: 什么是最好的方式来填充树?我此刻BinTree.BinaryTree <T>需要1个类型参数?
BinTree<int> myTree = new BinTree<int>();
int Value;
Console.WriteLine("Inserting Values: ");
Random random = new Random();
for (int i = 1; i <= 10; i++)
{
Value = random.Next(100);
Console.Write(Value + " ");
myTree.node(Value);
}
但
> myTree.node(Value);
保持与示数增加10个随机号码“错误1‘BINTREE.BinTree’不包含‘节点’,并没有扩展名的定义方法“节点”接受类型“BINTREE.BinTree”的第一个参数可以找到(是否缺少using指令或程序集引用?) “
class BinTree<T> where T : IComparable
{
private NODE<T> root;
public BinTree()
{
root = null;
}
public BinTree(NODE<T> node)
{
root = node;
}
//order algorithms
public void PreOrder()
{
PREORDER(root);
}
private void PREORDER(NODE<T> tree)
{
if (tree != null)
{
Console.Write(tree.Data);
PREORDER(tree.Left);
PREORDER(tree.Right);
}
}
public void PostOrder()
{
POSTORDER(root);
}
private void POSTORDER(NODE<T> tree)
{
if (tree != null)
{
POSTORDER(tree.Left);
POSTORDER(tree.Right);
Console.WriteLine(tree.Data);
}
}
public void InOrder()
{
INORDER(root);
}
private void INORDER(NODE<T> tree)
{
if (tree != null)
{
INORDER(tree.Left);
Console.WriteLine(tree.Data);
INORDER(tree.Right);
}
}
首先,您不能从类型名称中调用实例方法。其次,你为什么要从课外调用私人方法?这里到底发生了什么? – Dan 2012-08-08 18:29:46
从技术上讲,这个调用是针对公共实例方法的。为了调用一个类方法(不是实例),你必须实例化一个变量。或者方法/属性或任何你想使用的应该是静态的。在这种情况下,如果你确实调用它并且它是静态的,那么很有可能你会得到一个错误/异常,因为在公共InOrder()方法中,你将调用一个私有实例方法......但实例是什么? – Landern 2012-08-08 18:35:20