我得到了一些数据(直到我解决了这个问题,这些数据才真正存在……)我需要能够在我的程序中进行操作。然而,我不能想出一个合适的结构来存储它。
数据表示一组路径和节点。有一个输入(在某些情况下可能不存在),然后在以输出结尾的节点之间有多个路径(末端可能没有输出,但输出总是在末端)。每个输入、节点和输出都有一个位置,并且整个数据都可以以图形方式操作,所以无论我使用什么结构,都需要在运行时以潜在的不可预测的方式轻松地更改的内容(例如,将输入更改为输出,然后将另一个输出作为输入)。
我考虑使用树形结构,其中每个项目都有一个父项(根除外)和多个子项,例如:
Input
|
node---
|  |  |
|  |  Output
|  |
|  Node---Output
|  |---Output
|
Node----Node
|        |
Node     Output    然而,我可以看到一些这样的问题,比如如果没有输入,或者它的删除/更改/等等。
这是一个可视化的例子。>是输入O节点和[]输出。
http://unisonmodules.co.uk/wjnewbery/data.png
@Everyone建议使用我已经提到的树形结构
如果树实际上是合适的,我如何克服给定数据集甚至没有输入/根的问题,比如下面的问题。然后会发生什么呢?如果输入节点/点/任何东西发生变化(通过移除然后添加),我需要完全重建树吗?我该怎么做?
http://unisonmodules.co.uk/wjnewbery/data2.png
我将看一下图表。
发布于 2010-03-02 19:44:03
创建一个Node类,它具有一个值和一个同级数组。同级数组可以是空的,在这种情况下它是一个值节点。该值可能为null,在这种情况下,它是一个关节。
https://stackoverflow.com/questions/2362694
复制相似问题