我有一个由父节点和子节点组成的树数据结构,如下所示:
<Node1>
<Node2/>
<Node3>
<Node4/>
</Node3>
</Node1>
为了解析结构,我使用了 μ-recursive 函数:
void RecursiveFunction(NodeT node)
{
if(node.has_child())
RecursiveFunction(node.child());
}
当我调用作为参数传递的 RecursiveFunction 时,例如,Node2 我希望访问父(Node1)数据而不使用其他数据结构存储这些数据,因为第一个节点的数据在制作之前已存储在调用堆栈中递归调用。所以我需要访问调用堆栈来读取 Node1 的数据,而我正在解析 Node2 无法直接访问父亲,依此类推。
例如,如果我正在解析 Node4:
void RecursiveFunction(NodeT node)
{
/* Access to Node3 and Node1 data...
if(Node4.has_child())
RecursiveFunction(Node4.child()); */
}
可能吗?以什么方式?
谢谢。