什么遍历会产生我需要的输出

What traversal will produce the output I need

我有一棵这种形式的节点树:

我需要能够遍历树以生成输出:

a / b + c

标记为 'node' 的节点用于结构,我知道哪些节点包含正确的值,因此输出可以是:

a节点/b节点+c节点

当多余的节点被删除时,输出仍然是:

a / b + c

我想我需要实现 InOrder 遍历,但我正在努力让任何东西正常工作。

编辑:

public IEnumerable<Node> PostOrder(Node start, Func<Node, IEnumerable<Node>> getNeighbours)
{
    HashSet<Node> visited = new HashSet<Node>();
    Stack<Node> stack = new Stack<Node>();
    stack.Push(start);

    while (stack.Count != 0)
    {
        Node current = stack.Pop();
        visited.Add(current);
        yield return current;

        IEnumerable<Node> neighbours = getNeighbours(current).Where(node => !visited.Contains(node));

        foreach (Node neighbour in neighbours)
        {
            stack.Push(neighbour);
        }
    }
}

但是这个 returns 列表:

根,节点,c,节点,+,节点,节点,b,节点,/,节点,a

(从左到右)

我是傻了...

我只需要反转输出即可。

只是那些日子中的一个-_-