Data structures 数字墙的数据结构
我想知道数字墙的好数据结构是什么。两个邻居加起来等于他们上面的数字。请看附件中的图片 首先,我想说它是一个图形,因为其中一部分涉及到to项。但它可能是复杂的搜索。第二个想法是使用一棵树,将一片叶子/节点加倍 最后,我需要自下而上填充墙,并将某些阴影遮罩(图案)应用于未填充节点和树叶。所以在最后,我需要找到直接的邻居和他们的父母来填写表格Data structures 数字墙的数据结构,data-structures,Data Structures,我想知道数字墙的好数据结构是什么。两个邻居加起来等于他们上面的数字。请看附件中的图片 首先,我想说它是一个图形,因为其中一部分涉及到to项。但它可能是复杂的搜索。第二个想法是使用一棵树,将一片叶子/节点加倍 最后,我需要自下而上填充墙,并将某些阴影遮罩(图案)应用于未填充节点和树叶。所以在最后,我需要找到直接的邻居和他们的父母来填写表格 你觉得怎么样?我可以推荐一个向量的向量吗? i、 e.元素向量,使得索引i处的元素本身是大小i的向量 考虑到墙的底行将有n编号 创造 创建n元素的向量V,其
你觉得怎么样?我可以推荐一个向量的向量吗? i、 e.元素向量,使得索引
i
处的元素本身是大小i
的向量
考虑到墙的底行将有n
编号
创造
- 创建
元素的向量n
,其中索引V
处的元素本身就是大小i
i
- 使用起始元素将底部行向量(
中的每个索引分配给V[n-1][0]
)V[n-1][n-1]
- 给定行
中每个元素i
的值可以用一个简单的公式计算:j
V[i][j] = V[i+1][j] + V[i+1][j+1]
- 这允许您使用两个for循环填充结构的其余部分(从第二行到底行一直到顶部):
for (i = size(V)-2; i >= 0; i--) // starting with the second-to-bottom row for (j = 0; j < size(V[i]); j++) V[i][j] = V[i+1][j] + V[i+1][j+1]
for(i=size(V)-2;i>=0;i--)//从倒数第二行开始 对于(j=0;j
n+1
的向量作为新行V[n+1]
并执行更新步骤,可以扩展此结构
通道
给定任何元素V[i][j]
- 它正好有两个子项
和V[i+1][j]
(当然,除非它在最下面一行)V[i+1][j+1]
- 它至少有1个(顶部元素除外)和最多2个父元素
V[i-1][j]
V[i-1][j-1]