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

258
15 июля 2022, 22:10

Здравствуйт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);        
    }   
}
READ ALSO
Ввод переменной типа enum с клавиатуры

Ввод переменной типа enum с клавиатуры

У меня есть класс HealthyFood и enum Fruits{ apple, pear, peach, orange}Я создаю в ранее сказанном классе переменную fruit типа данных Fruits и хочу создать сеттер для...

286
Класс обертка для управления константностью объекта

Класс обертка для управления константностью объекта

У меня есть несколько классов, в которых есть функции lock() и unlock(), которые управляют переменной класса bool lockЕсли lock == true, то объект становится...

215
Ошибки C2440 / E0513 [дубликат]

Ошибки C2440 / E0513 [дубликат]

Учу С++Дошел до классов

197
Есть ли конструктор у базовых типов?

Есть ли конструктор у базовых типов?

Есть ли конструктор у базовых типов, например int?

231