数据结构设计求教

WTK-CV 2014-05-11 04:18:04


如图所示,
1. 假设存在9个对象(实际情况最多不超过1万个)
2. 每个对象有一个Int型值,假设定义为V(),即对象1的值为:V(1)
3. 各个对象之间,可能关联,可能独立,如:
对象6的值为:V(6) = 2 * V(1) + 3 * V(2) + 4 * V(3)
对象7的值为:V(7) = 3 * V(1) + 3 * V(4)
4. 当修改对象1的值时,程序不用遍历所有对象,而仅仅遍历与对象1关联的对象,更新所有关联对象相应的值
5. 如:
当对象1的值V(1) 由100 更改为128,则程序直接更新V(6) , V(7), V(8), V(9)
6. 该结构初始为空,然后由客户端不断填写数据进去,比如最开始一个对象都没有。添加9个对象后,才成图中所示

请问,应该如何设计这样的数据结构,或者设计模式,才能完成这样的功能
...全文
180 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-05-12
  • 打赏
  • 举报
回复
FancyMouse 2014-05-12
  • 打赏
  • 举报
回复
用DAG表示依赖关系。如果有环的话也能做,得到需要更新的顶点集合以后要做的事情一样是求解。只是DAG的情况是直接计算,有环的情况变成解方程而已。
ri_aje 2014-05-12
  • 打赏
  • 举报
回复
图看不到,看描述这结构是个有向图(或者是树,因为我觉得不应该存在环),V(n) 是顶点,相互之间的关联是边。 有现成儿的库可用,比如 boost::graph。 每次有变量发生变化的时候,更新它的邻接顶点即可。
赵4老师 2014-05-12
  • 打赏
  • 举报
回复
引用 5 楼 hanyue03 的回复:
[quote=引用 4 楼 zhao4zhong1 的回复:]
这才是高大上啊[/quote] 有向无环图
hanyue03 2014-05-12
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
这才是高大上啊
autowaredevelop 2014-05-11
  • 打赏
  • 举报
回复
有个简单思路,参考map方式,实现一个伪hash函数,客户端填写数据时,把有关联的节点链在一起,第一个节点发生变化就触发后面的节点。

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧