Ir ao conteúdo
  • Cadastre-se

C Metodo main nao funciona


UmPrograma

Posts recomendados

Oi, beleza?

 

Não to conseguindo fazer com que o metodo main "converse" com o funcao insere. 

 

Poderiam me ajudar a ver o que esta acontecendo? 

 

Segue o código

 


No *insere( No **no, int val, int *rval){
    No *paux, *paux2;
    int   vaux, promov;

    if (*no == NULL) {    // arvore vazia
       *no = (No *) malloc (sizeof(No));
       *no = criaNo(val, 0, 0, NULL, NULL, NULL);
             // cria no folha com um valor
       return NULL;       // nada a fazer depois
    }
    if (isLeaf(*no)){     // chegou a folha
       if ((*no)->nkey == 1){ // caso fácil
          adicionaChave(*no, val, NULL);
          return NULL;
       } else {
          paux = quebraNo(*no, val, &vaux, NULL);
          *rval = vaux;
          return paux;
       }
    } else {             // continua a procura
       if (val < (*no)->key1)
          paux = insere( &((*no)->left), val, &vaux);
       else if (((*no)->nkey == 1) || (val < (*no)->key2))
          paux = insere( &((*no)->middle), val, &vaux);
       else
          paux = insere( &((*no)->right), val, &vaux);
       if (paux == NULL) // nao promoveu
          return NULL;
       else
          if ((*no)->nkey == 1){
             adicionaChave(*no, vaux, paux);
             return NULL;
          } else {
             paux2 = quebraNo(*no, vaux, &promov, paux);
             *rval = promov;
             return paux2;
          }
     }
}


int main(){/*
    No **aux;
    aux = (No**)malloc(sizeof(No*));

    aux = insere(aux, 5, );*/
    int valor = 5, *val;
    No *a1;

    a1= insere(&a1,valor, val);
/* sub-árvore 'b' */
   // No* a2= insere(a1,valor,a1->key2);
/* sub-árvore 'e' */

    imprimir(a1);

}

 

Se acharem necessário ver o codigo todo, eu envio. Okay.

 

Obrigado desde já

 

adicionado 0 minutos depois

 

 

Acho que o fato de ser ponteiro para ponteiro esta me deixando confuso

adicionado 12 minutos depois

nao sei passar um struct ponteiro de ponteiro......

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...