Теперь я понимаю, что код ниже работает только для root и его дочерних элементов, но я не знаю, как его расширить. У каждого узла должны быть дети, прежде чем передавать «внукам». Спасибо.Как вставить узлы в дерево в C справа налево?
void insert_node(IndexTree **root, Node *node) {
IndexTree *temp = (IndexTree*)malloc(sizeof(IndexTree));
memcpy(&temp->value.cs, node, sizeof(Node));
temp->left = NULL;
temp->right = NULL;
temp->tip=1;
if ((*root) == NULL) {
*root = temp;
(*root)->left = NULL;
(*root)->right = NULL;
}
else {
while (1) {
if ((*root)->right == NULL) {
(*root)->right = temp;
break;
}
else if ((*root)->left == NULL) {
(*root)->left = temp;
break;
}
}
}
Поскольку вы просто кладете узлы в фиксированном порядке, это действительно массив, а не дерево. – stark