Ir ao conteúdo
  • Cadastre-se

Gabrielbuosi

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

0
  1. Muito obrigado aos 2: dotpanic, Screenblack... Resolveram meu problema!
  2. Olá a todos! Estou com um problema bem estranho no código, meu professor tentou me ajudar e modificou meu código fazendo o valor do Nó auxiliar ser o retorno do método e esse retorno sendo atribuído à raíz da árvore, antes eu tinha feito de outra forma, atribuindo normalmente no método de inserção... O código parece perfeito, mas estão surgindo erros meio bizarros nas impressões de pRaiz->palavra / pRaiz->pDir->palavra / pRaiz->pEsq->palavra, ora resultados <null>, ora resultados em branco e até mesmo caractéres estranhos. Segue o código: #include <stdio.h>#include <stdlib.h>#include <string.h> typedef struct No{char palavra[];struct No *pEsq, *pDir; }TNo; TNo *pRaiz; TNo* Insercao(TNo *pRaiz, char novaPalavra[]); int main(void){ char exemplo1[] = "aaabbb";char exemplo2[] = "aaaaaa";char exemplo3[] = "aaaccc"; pRaiz = Insercao(pRaiz, exemplo1);pRaiz = Insercao(pRaiz, exemplo2);pRaiz = Insercao(pRaiz, exemplo3); printf("Palavra em pRaiz: %s\n", pRaiz->palavra);printf("Palavra em pRaiz->pDir: %s\n", pRaiz->pDir->palavra);printf("Palavra em pRaiz->pEsq: %s\n", pRaiz->pEsq->palavra); } TNo* Insercao(TNo *pRaiz, char novaPalavra[]){ if(pRaiz == NULL){printf("Entrou no IF\n"); TNo *novoNo = (TNo *)malloc(sizeof(TNo));strcpy(novoNo->palavra, novaPalavra); printf("novoNo->palavra dentro do IF: %s\n", novoNo->palavra); novoNo->pDir = NULL; novoNo->pEsq = NULL; printf("novoNo->palavra dentro do if: %s\n", novoNo->palavra); return novoNo; }else{ if (strcmp(pRaiz->palavra, novaPalavra) < 0) { printf("entrou no ELSE1\n"); pRaiz->pEsq = Insercao(pRaiz->pEsq, novaPalavra); return pRaiz; }else{printf("entrou no ELSE2\n"); pRaiz->pDir = Insercao(pRaiz->pDir, novaPalavra); return pRaiz;}}} Output: Entrou no IFnovoNo->palavra dentro do IF: aaabbbnovoNo->palavra dentro do IF apos attr.:entrou no ELSE1Entrou no IFnovoNo->palavra dentro do IF: aaaaaanovoNo->palavra dentro do IF apos attr.:entrou no ELSE2Entrou no IFnovoNo->palavra dentro do IF: aaacccnovoNo->palavra dentro do IF apos attr.:8alavra em pRaiz: ÞPalavra em pRaiz->pDir:Palavra em pRaiz->pEsq: Como podem ver, coloquei algumas impressões para ter uma ideia do que estava acontecendo. O método de inserção é executado 3x com 3 strings exemplo. Espero que alguém me ajude... já tentei várias coisas e não consigo prosseguir.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...