2013-04-03 222 views
2

嗨,我仍然在学习C#,并试图为学习目的创建一个二叉树遍历算法。我在Java中做了同样的事情,我设法使它工作。我需要知道我是否可以给Node.This的方法AA参数是我到目前为止有:遍历二叉树

public class Node<T> 
{ 
     public Node<T> Left { get; set; } 
     public Node<T> Right { get; set; } 
     public T Data { get; set; } 
} 



public static void InOrder(Node<T> n) 
     { 
     } 

的问题是在它告诉我,我无法通过节点的参数,因为它解决不了symbole T.中序参数在Java中,我使用这个语法来使它工作在Node n上,但它似乎在C#中的语法不同。

如果是这样的话,我该如何使用我的curent类节点作为类型?

回答

2

将静态方法放在类Node<T>中,它会工作。课外,它不知道T是什么意思。

+0

这只是几种可能的选项之一。通过使该方法或该方法所用的任何类是通用的,可以使该方法在该类之外。 – Servy

2

您需要将<T>附加到您的方法名称,因为它不在Node类中。

public static void InOrder<T>(List<T> n) 
{ 
} 
1

你需要在你的方法T类是这样的:

public class Node<T> 
{ 
    public Node<T> Left { get; set; } 
    public Node<T> Right { get; set; } 
    public T Data { get; set; } 
} 

public static void InOrder<T>(Node<T> n) 
{ 
}