Tag: postorder

树中带有yield return元素顺序的递归

我有一个递归函数,在给定起始根节点的情况下返回所有子树节点。 private IEnumerable getAllNodesRecursively(Node subnode) { foreach (Node node in subnode.Nodes) getAllNodesRecursively(node); yield return subnode; } 对于以下树结构: A | +–B | +–C | | | +–D | +–E 当我尝试迭代时: foreach (Node n in getAllNodesRecursively(a)) { Console.WriteLine(n); } 该函数返回唯一的A值。 我希望使用yield-return和递归,并检索Preorder中的元素(在本例中为A,B,C,D,E)。 (如果我把收益率的回报放在foreach之前,那么foreach永远不会发生)。 这可能吗?