Q:

Struct recebendo a mesma struct como atributo

Olá, como posso ter uma struct "recursiva"? Uma struct que recebe ela mesma como um dos atributos.
typedef struct {
    int value;

    NODE[50];
} NODE;

Nesse caso, a ideia é que cada Node tenha um vetor com 50 nodes filhos. Como posso fazer? Obrigado

A:

Da forma que está tentando não vai conseguir porque está tentando declarar uma estrutura onde cada nó terá 50 nós e cada um desses nós terá outros 50 nós e cada um desses nós.. Sendo assim, acho que deve usar apenas um ponteiro ao invés de um vetor.
typedef struct {
    int value;
    NODE *filho;
} NODE;

Porém acredito que você precise controlar os 50 nós filhos específicos de cada nó, e aí está o problema. Você poderia incrementar sua struct pra manter uma lista de itens, mas em cada um ter o pai e a quantidade que cada um tem de filhos, controlando isso na hora de adicionar um novo item:
typedef struct {
    int indice; //por exemplo a posição deste item (1, 2, 3...) 
    int indice_pai; //a quem este elemento está referenciado
    int qtd_filhos; //inicializaria em 0 e receberia +1 a cada novo filho - serve para controlar os 50 máximos

    int value;
    NODE *filho;
} NODE;

Realmente fica bem mais complexo de controlar se precisar disso, mas acredito ser uma solução possível!!

