コード例 #1
0
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);
    }
}
コード例 #2
0
ファイル: main.c プロジェクト: eliasmaciel/Arvore
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;
}
コード例 #3
0
ファイル: avl_tree.c プロジェクト: elbemiranda/uff_si_2015.2
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;
}