編輯: 什麼是最好的方式來填充樹?我此刻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