2017-08-13 42 views
0

我试着创建一个二叉树,假设它最多有2个子节点。但是对于一个图,它将有一个或多个图形节点连接到它。我如何为像我为树创建的下面的图节点创建一个简单的类。建议的原因是因为我试图找到一个简单的代码来查找绑定到特定节点的所有节点信息。图形的C#类节点

class TreeNode 
{ 
    public int value { get; set; } 
    public TreeNode leftNode { get; set; } 
    public TreeNode rightNode { get; set; } 

} 
+1

与列表? – Everts

+0

如果图形只包含y个点,则此例中的值为数组int []值。 – jdweng

回答

1

的情况下,任何节点都可以有任意多的边(邻居节点),所以你必须使用一个收集,说List<T>

// TValue - let's generalize 
// (e.g. you may want ot have double or string value associated with the node) 
class GraphNode<TValue> { 
    private List<GraphNode<TValue>> m_Connected = new List<GraphNode<TValue>>(); 

    public TValue value { get; set; } 

    // get (and no set) - we don't want to assign the collection as whole 
    // if we want to add/remove a neighbor we'll call Neighbors.Add, Neighbors.Remove 
    public List<GraphNode<TValue>> Neighbors { 
     get { 
     return m_Connected; 
     } 
    } 
}