使用循环使用随机值填充树

时间:2016-11-07 16:13:16

标签: c

我有以下问题:

我创建了这个结构:

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

我的目标是用随机点建立初始树(每个点dim = 2)。我们可以从main函数手动执行此操作:

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;
}

1 个答案:

答案 0 :(得分: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;
}