如何用后缀表示法编写 n 叉树?

How do you write an n-ary tree in postfix notation?

我正在尝试理解 this paper通过下推自动机 在排名有序的树中匹配树模板。第一步是用后缀符号表示树。

我怎样才能得到这样一棵树:

foo
  bar
    abc
    def
  bar
    abc
    a
    b
    a
    b
    c
    d
    e
    def
    abc
  baz
    bar
      abc
      a
      b
      c
    abc
    def

然后用后缀表示法写出来?

没有多大意义。但是,您可以使用括号:

...(abc a b c)bar abc def)baz)foo

或者指定每个运算符的操作数个数:

... abc a b c bar4 abc def baz3 foo3

甚至:

... abc0 a0 b0 c0 bar4 abc0 def0 baz3 foo3

在那篇论文中,你所问的树是不可能的,因为你有具有相同“符号”(名称)但 children 数量不同的节点。然而,这篇论文假设字母表中的每个符号都有一个指定的“arity”(标有该符号的节点的 children 的数量)。顺便说一下,叶子符号的元数为 0。

开头的基本定义部分(非常简短地)提到了这一点:

A ranked alphabet is a couple = (Σ, φ), where Σ is an alphabet and φ is a mapping . The arity (rank) of a symbol xΣ is φ(x).

换句话说,有一个数学函数可以告诉您一个标记节点将有多少个 children,您可以在后缀表示法中使用它来了解该符号之前有多少子树。 (另请注意,包含 arity 函数的 是他们对 PDA 定义的一部分。)