【发布时间】:2012-02-18 13:16:29
【问题描述】:
我有这样一个结构,被描述为“二叉树”。来看一张图:
在内存中表示这一点的最佳方式是什么?澄清一下,这不是一棵简单的二叉树,因为节点 N4 既是 N1 的左子节点,也是 N2 的右子节点,N7 和 N8 也发生相同的共享,依此类推……我需要一个易于避免的构造算法复制这些节点,但只是引用它们。
更新 我们中的许多人不同意“二叉树定义”,但这来自金融(特别是衍生品定价),请看这里:例如http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter45.html。所以我使用了“Domain acceted definition”。
【问题讨论】:
-
那甚至不是一棵树。而实际的binomial tree 看起来不一样。
-
另外,“最好”是什么意思?你在找什么?代码可读性?内存占用?表现?
left和right引用的简单类型还不够吗? -
@svick 好吧,我的意思是一种在不复制节点的情况下生成它的方法......
-
这不是二叉树。它看起来更像是一个deap。
-
@templatetypedef 很好地定义为在某些金融领域:http.developer.nvidia.com/GPUGems2/gpugems2_chapter45.html btw 什么是deap?你的意思是堆?
标签: language-agnostic data-structures