Tivemos dificuldades na implementação das funções para listar descendentes e
ancestrais, erros na execução do código e na estrutura do código, contudo tínhamos conhecimento quanto ao método que seria utilizado que se tratava de recursividade, fazendo-se assim mostraríamos que para essa função “descendentes” funcionasse, seria feito de uma forma recursiva, para fazer a busca do próximo elemento, no caso parente, exemplo: “A” sendo pai de “B” retorne “B”, sendo o descendente de “A’’ apenas de cima para baixo e assim sucessivamente, com o método da recursividade, o mesmo seria usado para a função “ancestrais”, ao contrário neste caso, de baixo para cima. Também tivemos certa dificuldade em alocar o endereço de memória na implementação da função “pré-ordem”, analisando e refazendo a função percebemos que erro estava em uma quebra de linha no switch case, em “case 7” que seria da função “pré-ordem” e também por a falta de um “return” na estrutura do código da função, assim ficando: “return “%d”, Raiz->pessoa.parente;” corrigimos e o código foi executado perfeitamente, posteriormente fizemos a mesma coisa em na função “pós- ordem” e também foi executado êxito.