У меня уже есть двоичное дерево (не сбалансированное), и у каждого узла уже есть * команда, связанная с ним. Однако, когда я пытаюсь превратить дерево в массив, возникает проблема с адресом в TreeToVector(Teamtree->Left,...)
. Как мне это решить?
typedef struct
{
char *team;
}Team;
typedef struct Hash_tree *TreePointer;
typedef struct Hash_tree
{
TreePointer Right;
TreePointer Left;
Team T;
}Hash_tree;
void TreeToVector(Hash_tree **Teamtree, Team *t, int sizeofarray, int i)
{
if(Teamtree == NULL) return;
else
{
t[i].team = (*Teamtree)->T.team;
i++;
if(Teamtree->Left != NULL && i < sizeofarray)
i = TreeToVector(Teamtree->Left, t, sizeofarray, i);
if(Teamtree->Right != NULL && i < size)
i = TreeToVector(Teamtree->Right, t, sizeofarray, i);
}
}
В main.c:
Team t[size];
TreeToVector(Teamtree, t, size, 0);