Ir para conteúdo

natalia_oliveira

Members
  • Total de itens

    3
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre natalia_oliveira

  1. Erro de FALHA DE SEGMENTAÇÃO

    Alguma outra sugestão ?
  2. Erro de FALHA DE SEGMENTAÇÃO

    Tentei e não é isso.
  3. Erro de FALHA DE SEGMENTAÇÃO

    Boa noite, Neste programa, você deve entrar com um inteiro C (C ≤ 1000), indicando o número de casos de teste que virão a seguir. Cada caso de teste é composto por 2 linhas. A primeira linha contém um inteiro N (1 ≤ N ≤ 500) que indica a quantidade de números que deve compor cada árvore e a segunda linha contém N inteiros distintos e não negativos, separados por um espaço em branco. Cada linha de entrada produz 3 linhas de saída. Após construir a árvore binária de busca com os elementos de entrada, deve-se imprimir a mensagem "Case n:", onde n indica o número do caso de teste e faz os três percursos da árvore: prefixo, infixo e posfixo, apresentando cada um deles em uma linha. Quando executo ele dá o ero de falha de segmentação. Será que alguém pode me ajudar a resolver esse problema ? O meu código é: #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct{ int node; struct tree *left; struct tree *right; }tree; tree *raiz; tree * visita_raiz(tree *ra, tree *r, int valor); void insere(int valor); void preordem(); void emordem(); void posordem(); int main(){ int c, n, i, j, a, raiz; scanf("%d",&c); for(i=0; i<c; i++){ scanf("%d", &n); for(j=0; j<n; j++){ scanf("%d", &a); } printf("Case %d\n", i+1 ); printf("Pre.:");preordem(raiz); puts(""); printf("In..:");emordem(raiz); puts(""); printf("Post:");posordem(raiz); puts("\n"); raiz = NULL; } return 0; } tree * visita_raiz(tree *ra, tree *r, int valor){ r = (tree *) malloc(sizeof(tree) *1000); if(r == NULL){ r->left = NULL; r->right = NULL; r->node = valor; if(ra == NULL){ return r; } if(valor < ra->node){ ra->left = r; } else{ ra->right = r; } return r; } if(valor < r->node){ visita_raiz(r,r->left,valor); } else{ visita_raiz(r,r->right,valor); } } void insere(int valor){ if(raiz == NULL){ raiz = visita_raiz(raiz,raiz,valor); }else{ visita_raiz(raiz,raiz,valor); } } void preordem(tree *pNo){ if (pNo != NULL){ printf(" %d", pNo->node); preordem(pNo->left); preordem(pNo->right); } } void emordem(tree *pNo){ if (pNo != NULL){ emordem(pNo->left); printf(" %d", pNo->node); emordem(pNo->right); } } void posordem(tree *pNo){ if (pNo != NULL){ posordem(pNo->left); posordem(pNo->right); printf(" %d", pNo->node); } }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.