我正在尝试为输入输出系统实现一个模型,其中有几个不同的“计算器”使用输入进行不同的计算并返回一个或多个输出(在我的代码中,每个计算器都是一个实例类)。它类似于逻辑门系统,除了这里每个计算器可能产生两个或更多输出(数据比数字更复杂)。
对于此系统,将至少有一个只接受用户输入的计算器。系统将查找它找到的第一个仅接收用户输入的计算器(它已经被标记为这样)并从那里开始。然后,它产生的任何输出将作为其输入送到其他计算器进行更多计算。
对于任何非启动计算器,只有指向它的所有计算器都已完成自己的运行(为了准备好处理所有输入),它才会运行。
每个输入和输出的数量是任意的,但它将非常小(每个不超过4个输入和4个输出)。可以制作这样一个系统,使其分支到多个计算器,但最终的计算器将始终产生一个输出,这是最终结果。每个输出将精确到一个计算器(最后一个除外)。
是否有类似图形的数据结构可以应用我所描述的内容?图表应该表示一个像链接列表的序列(因为你经历了一个特定的计算顺序),但它也像一棵树,因为每个节点可能指向几个节点,而且几个节点可能指向它。
我在想给每个计算器一个“下一个”数据的内部列表,这些数据指的是所有输出将映射到的计算器。还有其他方法可以开始这个设计吗?
答案 0 :(得分:1)
您提出的类似图形的结构是图形的邻接列表表示。当我编写这样的代码时,我发现让消费者指向生产者,然后使用类似于topological sort的访问模式从输出中递归地向后工作。