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

ozk*_*ank 0 .net c# pushdown-automaton

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

a^nbc^n (n>=0) 
Run Code Online (Sandbox Code Playgroud)

Kev*_*nko 6

算法:

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

阶段1:

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

第二阶段:

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

第3阶段:

如果读取的字母为"c",则递减计数器,并重复第3阶段.如果读取的字母不是"c",则进入下一阶段.

第四阶段:

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