如何“线性化”树结构?

时间:2014-02-02 20:24:13

标签: c++ c arrays cuda tree

我有这样的树结构:

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设备存储器?

1 个答案:

答案 0 :(得分:0)

您创建了一个TetrahedronStruct数组,root是第一个元素,索引为0.

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