c++ - 如何将 "linearize"变成树形结构?

标签 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 设备内存?

最佳答案

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

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

关于c++ - 如何将 "linearize"变成树形结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21515734/

相关文章:

c - 使用 while 循环的印度算法

javascript - 到达数组末尾后如何执行函数?

c++ - 从另一个线程中删除对齐的内存

c++ - 析构函数中的链表 RAII 代码崩溃

c++ - 从两个抽象类继承

C:从用户读取成对的整数直到换行(scanf、sscanf、fgets 和 friend )

c++ - Eclipse 中的 MinGW GCC 和 G++ 错误

c - 将所有变量声明为指针与在 C 中使用地址运算符

c# - 检查数组是否重复,只返回出现不止一次的项目

javascript - 无法在 json 数组对象迭代中获得所需或类似的输出?