void inserirArvore(Arvore **pRaiz, Cliente **cliente){ if(*pRaiz == NULL){ *pRaiz = criarNo(); (*pRaiz)->cliente = *cliente; }else{ if((*cliente)->matricula < (*pRaiz)->cliente->matricula) inserirArvore( &((*pRaiz)-> esq), cliente); if((*cliente)->matricula > (*pRaiz)->cliente->matricula) inserirArvore( &((*pRaiz)-> dir), cliente); *pRaiz = balancearArvoreAVL(pRaiz); } }
int casamento (Arvore **A1, Arvore **A2) { Arvore *novo; novo = criarNo (); novo->no = criarRegistro (); strcpy (novo->nome, "cas "); strcpy (novo->no->nome, "cas "); strcat (novo->nome, (*A1)->nome); strcat (novo->no->nome, (*A1)->nome); strcat (novo->nome, " e "); strcat (novo->no->nome, " e "); strcat (novo->nome, (*A2)->nome); strcat (novo->no->nome, (*A2)->nome); (*A1)->direita = novo; (*A2)->esquerda = novo; printf("RETORNO3\n"); return 1; }
int insertAVL_TreeR(struct AVL_TreeNode **node, void *elem, int *h) { if ((*node) == NULL) { //Condição de parada struct AVL_TreeNode *novoNo = NULL; novoNo = criarNo(); novoNo->elem = elem; (*node) = novoNo; return 1; } else { if (*(int*)elem < *(int*)(*node)->elem) { //Compara o elemento do o nó corrente, se for menor, executa recursivamente no nó da esquerda struct AVL_TreeNode **noAux = &((*node)->left); //Estou ignorando o h que será enviado, a altura do nó será calculada por outra função return insertAVL_TreeR(noAux, elem, NULL); } else if (*(int*)elem > *(int*)(*node)->elem) { //Compara o elemento do o nó corrente, se for maior, executa recursivamente no nó da direita struct AVL_TreeNode **noAux = &((*node)->right); //Estou ignorando o h que será enviado, a altura do nó será calculada por outra função return insertAVL_TreeR(noAux, elem, NULL); } } return 0; }