Структура tree. Функция работы с этой структурой

xSCJx

Привет. В книге (неважно какой), есть пример такого кода:
struct tree
{
    int v;
    tree* p[4];
};
 
int F(tree* q)
{
    int i, m, n;
 
    if (q == NULL)
        return 0;
    for (n = q->v, i = 0; i < 4; i++)
    {
        if ((m = F(q->p[i])) > n)
            n = m;
    }
 
    return n;
}
Требуется определить, что делает функция. Я думаю, что функция находит максимальный элемент в структуре tree. Впринципе по большему счёту мне понятна её работа, единственное, меня настараживает это поле структуры tree tree* p[4]; Что же это получается оно (это дерево) бесконечное чтоле? Указатель на массив из 4-х элементов, в каждом из которых тоже есть массив из 4-х элементов, и что же это получается? Сколько там элементов? Спасибо.
1 ответ

xSCJx

SERUYBKR, это квадродерево, у каждого узла есть 4 потомка, на самом деле у вас до 4 потомков, поле v хранит кол-во потомков. Функция F всегда выдаёт 0, мне кажется, а если у узла 0 потомков и вовсе неопределённое левое значение