首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何表示这个“树”数据?

如何表示这个“树”数据?
EN

Stack Overflow用户
提问于 2010-03-02 19:19:34
回答 4查看 2.4K关注 0票数 1

我得到了一些数据(直到我解决了这个问题,这些数据才真正存在……)我需要能够在我的程序中进行操作。然而,我不能想出一个合适的结构来存储它。

数据表示一组路径和节点。有一个输入(在某些情况下可能不存在),然后在以输出结尾的节点之间有多个路径(末端可能没有输出,但输出总是在末端)。每个输入、节点和输出都有一个位置,并且整个数据都可以以图形方式操作,所以无论我使用什么结构,都需要在运行时以潜在的不可预测的方式轻松地更改的内容(例如,将输入更改为输出,然后将另一个输出作为输入)。

我考虑使用树形结构,其中每个项目都有一个父项(根除外)和多个子项,例如:

代码语言:javascript
运行
复制
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

我将看一下图表。

EN

Stack Overflow用户

发布于 2010-03-02 19:44:03

创建一个Node类,它具有一个值和一个同级数组。同级数组可以是空的,在这种情况下它是一个值节点。该值可能为null,在这种情况下,它是一个关节。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2362694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档