递归元组

时间:2013-11-05 16:58:45

标签: c# recursion forward-declaration

我正在尝试在C#中创建一个递归元组。一方是引用类,另一方是递归到同样的数据结构。右侧可以为null,这是递归结束的时候。

目前我正在使用别名,但这似乎不起作用。

using Relation = System.Tuple<Node, Relation>;

直接输入这个是不可能的,因为这是无限的。

System.Tuple<Node, System.Tuple<Node, System.Tuple<Node, ...>>>

1。 这在C#中是否可行?

2。 我可以用别名来做这件事吗?

额外信息

我这样做是因为我需要跟踪每个节点的父节点。节点可以有多个子节点。我无法编辑节点类。

我只需要升级层次结构。即我不需要知道一个节点的孩子。我用这个算法计算很多节点,当我找到一个节点时,我想找到从底部到根的路径。

1 个答案:

答案 0 :(得分:1)

您可以为此创建一个类。

class Relation
{
   Node Node;  // Node is another class
   Tuple<Node, Relation> Relation;
}