【问题标题】:How to "linearize" a tree structure? [duplicate]如何“线性化”树结构? [复制]
【发布时间】:2014-02-02 20:24:13
【问题描述】:

我有一个这样的树结构:

struct TetrahedronStruct {
  int index;
  int region;
  TriangleFaces Faces[4];
  Vertex Vertices[4];
  struct TetrahedronStruct *adjTetrahedrons[4];
};

typedef struct {
  long double Nx, Ny, Nz;
  long double d;
  Vertex V[3];
} TriangleFaces;

typedef struct {
  long double x, y, z;
} Vertex;

如何将树展平为线性内存阵列以复制到 CUDA 设备内存?

【问题讨论】:

  • 我不知道这是否是您要查找的内容,但请尝试使用 Prüfer code 和一组节点。
  • @H2CO3 谢谢!我会调查的。
  • @KerrekSB 不是同一个问题,但可能其他帖子的答案就是这个问题。你认为我应该删除其他帖子吗?
  • @mrei:要么,要么改进它,以便它可以回答并删除这个。我没有仔细研究,但似乎您正在努力解决问题而不是有两个单独的问题,在这种情况下,改进一个问题比有两个相似的问题要好。

标签: c++ c arrays cuda tree


【解决方案1】:

你创建一个 TetrahedronStruct 数组,root 是第一个元素,索引为 0。

对于索引 i,子级位于 4 * i + j,其中 j 在 [0..4] 范围内

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多