phelipegm 0 Denunciar post Postado Dezembro 18, 2016 Boa tarde! Sou estudante de computação e estava vendo o gabarito que a professora fez de uma prova que eu fiz, porém ao implementá-lo vi que o código estava com erro, e eu não estou conseguindo enxergar o erro de jeito nenhum. Já tentei várias modificações no mesmo, mas não obtive sucesso. Será que alguém pode me ajudar ? Segue abaixo a pergunta e o tal gabarito. Obrigado! Sabendo-se que uma árvore de busca binária é representada por: typedef struct arvore{ int info; struct arvore *esq,*dir; }TAB; Escreva um programa que, ao receber uma árvore a, retorne num vetor ordenado de maneira crescente, todos os elementos da árvore passada como parâmetro de entrada, sem usar algoritmos de ordenação. A função deve possuir o seguinte protótipo: int *a2v(TAB *a). Compartilhar este post Link para o post Compartilhar em outros sites
Nefisto 0 Denunciar post Postado Dezembro 19, 2016 Bom dia phelipegm, vou tentar te ajudar nesse problema aew, eu tbm sou estudante de computação, então pode ser q eu esteja equivocado, mas eu acho q a sua professora se enganou bastante nesse codigo. Vou listar o q eu ACHO q esta errado. 1- Quando a arvore for par o algortimo vai gerar um erro por um com aquele "tam" da primeira funcao, tem q se passado "tam-1". 2- É criado uma variavel 'ini' na funcao, mas nunca é usado. 3- Nao é testado se o nó é NULL, com alguns testes de mesa aki, 4- Se você fizer testes de mesa, quando ele começar a ir para a direita, vai sobrepor alguns valores q estavam corretos no vetor. Enfim, com ctz ela se equivocou, mas talvez ela ja tenha percebido e arrumado, e sobre encontrar os erros, faz um teste de mesa aki com uma arvore com 10 nós e os numeros de 1 a 10, q você vai ver a sequencia de erros q vai gerando hehe Espero ter ajudado, abraço Compartilhar este post Link para o post Compartilhar em outros sites