Создание М-мерного дерева на языке Си

Здравствуйтe, Хочу написать собственное дерево на языке си, каждый узел которого имеет более двух потомков. Я создал структуру, в которую входит значение узла, количество потомков и массив указателей на этих потомков, и, пока что, один метод - создание нового узла дерева. Так вот, на данном этапе максимальная глубина создаваемого мною дерева = 2. Что я делаю не так? Как сделать так, чтобы была возможность углубляться внутрь?

Вот код:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct treeNode
{
    char                data;
    int                 childs;
    struct treeNode     **childPtr;
}treeNode;

void    insertNode(treeNode **treePtr, char data);

void    insertNode(treeNode **treePtr, char data)
{
    int         i;
    treeNode    *newPtr = NULL;

    if(*treePtr == NULL)
    {
        *treePtr = (treeNode *)malloc(sizeof(treeNode));
        (*treePtr)->data = data;
        (*treePtr)->childs = 0;
        (*treePtr)->childPtr = NULL;
    }
    else
    {
        (*treePtr)->childPtr = (treeNode **)realloc((*treePtr)->childPtr, ++((*treePtr)->childs) * sizeof(treeNode));
        (*treePtr)->childPtr[((*treePtr)->childs) - 1] = newPtr;
        insertNode(&((*treePtr)->childPtr[((*treePtr)->childs) - 1]), data);        
    }   
}

Ответы (0 шт):