2016-11-07 82 views
2

随机值填充一棵树,我有以下问题:使用的使用环路

我创造了这个结构:

typedef struct Tree{ 
    float pnt[2]; 
    struct Tree *left; 
    struct Tree *right; 
}Node; 

我的目标是建立与随机点的初始树(朦胧的每个点= 2)。我们可以做手工,从主要功能是这样的:

Node n[] = { 
    {{2, 3}}, {{5, 4}}, {{9, 6}}, {{4, 7}}, {{8, 1}}, {{7, 2}} 
}; 

不过,我想这样做,使用循环填充随机点的每个节点。难道是正确的做到以下几点:

Node n; 
int num_nodes = 6; 

srand(time(NULL)); 
for (i = 0; i < num_nodes; ++i) { 
    n->pnt = (float) rand()/(float) RAND_MAX; 
} 

回答

0

不太 - 因为node是一个数组,并pnt是每个结构中的两个点的数组,你需要做这样的事情:

const int num_nodes = 6; 
Node n[num_nodes]; 

srand(time(NULL)); 
for (i = 0; i < num_nodes; ++i) { 
    n[i].pnt[0] = (float) rand()/(float) RAND_MAX; 
    n[i].pnt[1] = (float) rand()/(float) RAND_MAX; 
} 
+1

谢谢保罗..很好解释:) –