편집 : 트리를 채우는 가장 좋은 방법은 무엇입니까? 내가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);
가
으로 erroring 유지 순간에 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
기술적 인면에서는 public 인스턴스 메서드를 호출했습니다. 클래스 메소드 (인스턴스가 아닌)를 호출하려면 변수를 인스턴스화해야합니다. 또는 메서드/속성 또는 사용하려는 것은 정적이어야합니다. 이 경우에 호출하고 정적 인 경우 공용 InOrder() 메서드에서 private 인스턴스 메서드를 호출하기 때문에 오류/예외가 발생할 가능성이 높습니다. – Landern