我正在尝试编写C代码来模拟非确定性图灵机。到目前为止,我已经实现了输入磁带和过渡磁带,第一个使用简单的双链表,第二个使用链表。
这个想法是要建立一个像这样的计算树:Computational Tree
每个节点都包含在我的图灵机的配置中:
由于不确定性,我必须检查并递归遍历整个树,这意味着平均要分配大量的内存(每个可能的配置1个节点)。
是否有更好的数据结构来模拟ND Turing Machine?我当时在考虑定向图(这也是您通常在纸上描述图灵机的方式),并使用邻接表来实现它,如下所示:{{3 }}(因为我不知道先验可能的状态数,并且C中的数组不是动态的。)