如何在C#中实现下推自动机?

时间:2009-12-14 19:34:53

标签: c# .net pushdown-automaton

我想为PDA编写代码。我怎么能在C#中做到这一点?

a^nbc^n (n>=0) 

1 个答案:

答案 0 :(得分:6)

<强> 算法:

从输入中一次读取一个字母。

第1阶段:

如果读取的字母是“a”,则递增计数器,并重复第1阶段。如果读取的字母不是“a”,则继续下一部分。

第2阶段:

如果读取的字母是“b”,则进入下一阶段。如果读取的字母不是“b”,则算法失败。

第3阶段:

如果读取的字母为“c”,则递减计数器,并重复第3阶段。如果读取的字母不是“c”,则继续进行下一阶段。

第4阶段:

如果计数器为零,则算法成功,否则失败。