C#中的二叉树

xar*_*rzu -1 c# binary-tree

你如何在C#中使用简单,直接的二进制树,并且不使用任何预定义的类?我说的是像C++中那样简单的事情

没有像NGenerics Objects那样代表树木

我的意思是从简单的东西开始,像这样:

struct
{
  Node * left
  Node * right
  int value;
}
Run Code Online (Sandbox Code Playgroud)

跟进问题:

好的,如果我有这个:

public class binarytreeNode
{
    public binarytreeNode Left;
    public binarytreeNode Right;
    public int data;

}
Run Code Online (Sandbox Code Playgroud)

我是否必须在此类中放置作用于节点的方法?这不会使这不再是节点吗?

如果我创建一个在Program类中添加节点的方法:

class Program
{       
     public binarytreeNode AddNode(int value)
    {
        binarytreeNode newnode = new binarytreeNode();
        newnode.Left = null;
        newnode.Right = null;
        newnode.data = value;
        return newnode;
    }
     static void Main(string[] args)
    {
        binarytreeNode head = AddNode(4);

    }
}
Run Code Online (Sandbox Code Playgroud)

编译器说我调用AddNode需要一个对象引用.为什么?

Meh*_*dad 8

class Node<T>
{
    public Node<T> Left, Right;
    public T Value;
}
Run Code Online (Sandbox Code Playgroud)


Bli*_*ndy 5

class Node
{
  public Node left, right;
  public int value;
}
Run Code Online (Sandbox Code Playgroud)