2014-02-02 5 views
-1

У меня есть древовидная структура, как это:Как «линеаризовать» древовидную структуру?

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?

+0

Я не знаю, это то, что вы ищете, но попробуйте [Prüfer code] (http://en.wikipedia.org/wiki/Pr%C3%BCfer_sequence) и массив узлов. –

+0

@ H2CO3 Спасибо! Я займусь этим. – mrei

+0

@KerrekSB Не совсем тот же вопрос, но, вероятно, ответ на этот пост - вопрос в этом вопросе. Думаешь, я должен стереть другой пост? – mrei

ответ

0

Вы создаете массив TetrahedronStruct, корень является первым элементом, индекс 0.

Для индекса я, дети находятся в 4 * i + j с J в диапазоне [0..4]

Смежные вопросы