Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
duguying committed Oct 28, 2024
1 parent fbc94e3 commit d58dd32
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/ebook/3/1/1.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

表明确实需要用一系列步骤来完成。我们首先证明对语法来说所有右侧都是长度2;这就导致了二叉树,树上每个节点要么有两个子节点要么就是叶子(没有子节点的节点)。二叉树有着显著的特点,所有的给定树叶数量的二叉树都有同样数量的节点,而不在乎它们的形状。下面我们看右侧长度>2的语法,接着有单元规则的语法,最后是可为空规则的语法。

正如我们说的,长度为*n*的输入字符串包含*n*标记的节点。当解析树尚不存在时,这些节点是没有父节点的叶子。现在我们来构建一棵二叉树来给每个叶子一个父节点,父节点都标记了来自语法的非终结符。第一个父节点*P<sub>1</sub>*我们添加的,减少了2个没有父节点的叶子,但是现在*P<sub>1</sub>*自身成为了没有父节点的节点;所以我们现在有*n+1*个节点,其中*n-2+1 = n-1*个节点没有父节点了。同样的事情发生在添加的第二个父节点*P<sub>2</sub>*上,不论*P<sub>1</sub>*是否是其子节点;所以现在我们有*n+2*个节点,其中*n-2*个没有父节点。*j*步之后,我们就有了*n+j*个节点,其中*n-j*个没有父节点,并且在*n-1*步之后,我们就有*2n-1*个节点,其中1个没有父节点。那没有父节点的1个节点就是根节点,然后解析树就完成了。所以我们看到,当所有右侧长度是2时,对于输入长度是*n*的解析树,包含*2n-1*个系欸但,其线性在*n*。
正如我们说的,长度为*n*的输入字符串包含*n*标记的节点。当解析树尚不存在时,这些节点是没有父节点的叶子。现在我们来构建一棵二叉树来给每个叶子一个父节点,父节点都标记了来自语法的非终结符。第一个父节点*P<sub>1</sub>*我们添加的,减少了2个没有父节点的叶子,但是现在*P<sub>1</sub>*自身成为了没有父节点的节点;所以我们现在有*n+1*个节点,其中*n-2+1 = n-1*个节点没有父节点了。同样的事情发生在添加的第二个父节点*P<sub>2</sub>*上,不论*P<sub>1</sub>*是否是其子节点;所以现在我们有*n+2*个节点,其中*n-2*个没有父节点。*j*步之后,我们就有了*n+j*个节点,其中*n-j*个没有父节点,并且在*n-1*步之后,我们就有*2n-1*个节点,其中1个没有父节点。那没有父节点的1个节点就是根节点,然后解析树就完成了。所以我们看到,当所有右侧长度是2时,对于输入长度是*n*的解析树,包含*2n-1*个节点,其线性在*n*。

如果有的右侧的长度>2,那可能只需要更少的父节点来构造这颗树。所以整棵树的大小可能会小于*2n-1*,并且肯定会小于*2n*

Expand Down

0 comments on commit d58dd32

Please sign in to comment.