Problema para usar ponteiro

0 respostas
Mariana.Vecci

Gente, estou tendo dificuldades com o uso de ponteiros na função de inserir, poderiam me ajudar:

void Inserir (arvore_ptr *pai, int c, char n[], float p) {
	if (*pai) { 
		if (c < (*pai) -> cod) {   
	         ((*pai)->esq) = inserir(&((*pai)->esq), c, n, p);
		       if (altura (*pai->esq) - altura (*pai->dir) == 2) 
                 if (c<*pai->esq->cod)
                   (*pai) = RotacaoSimplesEsquerda (*pai);
                 else 
                   (*pai) = RotacaoDuplaEsquerda (*pai);
		else
		if(c > (*pai) -> cod) {
                (*pai)->dir = inserir(c, *pai->dir);
                if(altura(*pai->dir) - altura(*pai->esq) == 2)
                    if(c > (*pai)->dir->cod)
                        (*pai) = RotacaoSimplesDireira(*pai);
                    else
                        (*pai) = RotacaoDuplaDireita(*pai);
            }
            
            (*pai)->altura = Max(altura(*pai->esq), altura(*pai->dir)) + 1;
            return (*pai);	 
	}
	else 
    { 
         if (*pai == NULL) 
         {
		    (*pai) = (arvore_ptr) malloc (sizeof (struct ARVORE)); 
		    
			      (*pai) -> cod = c; 
		           strcpy((*pai) -> nome, n);
			      (*pai) -> preco = p;
			      (*pai) -> altura = 0;
			      (*pai) -> esq = NULL; 
			      (*pai) -> dir = NULL;
	    }
   }
}
Criado 10 de junho de 2011
Respostas 0
Participantes 1