Atravessar a árvore sem recursão e empilhar em C

Como percorrer cada nó de uma árvore eficientemente sem recursão em C (sem C ++)?

Suponha que eu tenha a seguinte estrutura de nós dessa árvore:

struct Node
{
    struct Node* next;   /* sibling node linked list */
    struct Node* parent; /* parent of current node   */
    struct Node* child;  /* first child node         */
}
Não é lição de casa.Prefiro profundidade primeiro.Prefiro que nenhuma estrutura de dados adicional seja necessária (como a pilha).Prefiro a maneira mais eficiente em termos de velocidade (não de espaço).Você pode alterar ou adicionar o membro deNode struct para armazenar informações adicionais.

questionAnswers(5)

yourAnswerToTheQuestion