void posOrdem(NoAVL<T>* nodo) {
   if (nodo != NULL) {
     posOrdem(nodo->getEsquerda());
     posOrdem(nodo->getDireita());
     elementos.push_back(nodo);
   }
 }
void posOrdem(Node* no) {
    if (no != NULL) {
        posOrdem(no->sae);
        posOrdem(no->sad);
        printf("%d ", no->valor);
    }
}
 /**
  * @brief      Método para colocar os nodos da árvore
  *             na lista "elementos" em posOrdem
  *
  * @param      nodo      Árvore que será ordenada
  */
 void posOrdem(NoRB<T>* nodo) {
     if (nodo != nullptr) {
         posOrdem(nodo->getEsquerda());
         posOrdem(nodo->getDireita());
         elementos.push_back(nodo);
     }
 }
Beispiel #4
0
	void posOrdem(NoAVL<T>* nodo) {
		if (nodo) {
			posOrdem(nodo->esquerda);
			posOrdem(nodo->direita);
			elementos.push_back(nodo);
		}
	}
Beispiel #5
0
void posOrdem(node *n){
    if(n == NULL){
        return;
    }
    posOrdem(n->esq);
    posOrdem(n->dir);
    printf("[%d]",n->info);
}
void posOrdem(struct arvore * no){
     if(no!=NULL)
     {
        posOrdem(no->esq); 
        posOrdem(no->dir); 
        printf("%d ", no->chave); 
     }
}
void posOrdem(no* T){

    if(T != NULL){
        posOrdem(T->esquerdo);
        posOrdem(T->direito);
        printf("%d(Bf=%d) ", T->dado, difAlturaEsq_e_Dir(T));
    }
}
Beispiel #8
0
void posOrdem(struct No *no)
{
     if (no != NULL)
     {
            posOrdem(no->esquerda);
            posOrdem(no->direita);
            printf("%d ", no->chave);
     }
}
void posOrdem(No *arvore) {
	if(arvore != NULL) {
		posOrdem(arvore->f0);
		posOrdem(arvore->f1);
		if(arvore->aresta != 2) {
			printf("%d ", arvore->aresta);
		}
	}
}
Beispiel #10
0
int main()
{
    struct Arvore *t = criaArvore();
    int num;
    char c[5];

    gets(c);

    while(scanf("%d", &num) != EOF)
        inserir(t, criaNo(&num));

    if(strcmp(c, "POS") == 0)
        posOrdem(t->raiz);

    else if(strcmp(c, "PRE") == 0)
        preOrdem(t->raiz);

    else
        inOrdem(t->raiz);

    printf("%d", altura(t->raiz));
    
    printf(" %d", rotacao);
    
}
void impressao(struct arvore * no){ // Opcao 4
    // Imprime os elementos de forma recursiva
    printf("Pre Ordem\n");
    preOrdem(no);
    printf("\nPos Ordem\n");
    posOrdem(no);
    printf("\nEm Ordem\n");
    emOrdem(no);
}  
Beispiel #12
0
void exibeOrdem(Arvore* minhaArvore){
    printf("\n#----- Visualizando estrutura da árvore -----#\n");
    printf("Árvore pré-ordem: ");
    preOrdem(minhaArvore->raiz);
    printf("\nArvore pós-ordem: ");
    posOrdem(minhaArvore->raiz);
    printf("\nÁrvore em ordem: ");
    emOrdem(minhaArvore->raiz);
    printf("\n");
}
int main(void){
    no *raiz = NULL;
    int dadosDosElementos, nElementos, i, opcao;

    do{
        printf("\nArvores AVL"
               "\n1.Criar:"
               "\n2.Inserir no:"
               "\n3.Excluir no:"
               "\n4.Mostrar encaminhamentos:"
               "\n5.Sair:"
               "\nInforme sua escolha: ");
        scanf("%d", &opcao);
        switch(opcao){
            case 1:
                printf("\nInforme a qtd de elementos que deseja inserir: ");
                scanf("%d",&nElementos);
                printf("\nInforme os dados dos nos da arvore:\n");
                raiz = NULL;
                for(i = 0; i < nElementos; i++){
                    scanf("%d", &dadosDosElementos);
                    raiz = insercao(raiz, dadosDosElementos);
                }
                break;
            case 2:
                printf("\nInforme um dado para o novo no: ");
                scanf("%d", &dadosDosElementos);
                raiz = insercao(raiz, dadosDosElementos);
                break;
            case 3:
                printf("\nInforme um dado para o novo no: ");
                scanf("%d", &dadosDosElementos);
                raiz = excluir(raiz, dadosDosElementos);
                break;
            case 4:
                printf("\nSequencia em pre-ordem:\n");
                preOrdem(raiz);
                printf("\n\nSequencia em ordem:\n");
                emOrdem(raiz);
                printf("\n\nSequencia em pos-ordem\n");
                posOrdem(raiz);
                printf("\n");
                break;
        }
    }while(opcao != 5);

    return 0;
}
Beispiel #14
0
int mainArvore(int argc, char **argv) {
	CelulaTmp A;
	NoAB i, *pi;
	void *pv, *other, *aux;
	int num = 4, *newData;
	char charactere = 'z', *newCharactere;
	double floatingPoint = 3.1415, *newFloat;
	Celula celulaA, celulaB, celulaC;

	celulaA.dado = &num;
	celulaB.dado = &charactere;
	celulaC.dado = &floatingPoint;

	newData = (int *)celulaA.dado;
	printf("%d\t%d\n", *newData, sizeof(celulaA));

	newCharactere = (char *)celulaB.dado;
	printf("%c\t%d\n", *newCharactere, sizeof(celulaB));

	newFloat = (double *)celulaC.dado;
	printf("%lf\t%d\n", *newFloat, sizeof(celulaC));

	//celulaA.proxima = (PtCelula)malloc(sizeof(Celula));
	celulaA.proxima = &celulaB;

	celulaA.proxima->proxima = (PtCelula)malloc(sizeof(Celula));
	*celulaA.proxima->proxima = celulaC;

	newCharactere = (char *)celulaA.proxima->dado;
	printf("%c\n", *newCharactere);

	newFloat = (double *)celulaA.proxima->proxima->dado;
	printf("%lf\n", *newFloat);

	newFloat = (double *)celulaB.proxima->dado;
	printf("%lf\n", *newFloat);

	aux = &num;

	newData = (int *)test(aux);

	num = 9;
	printf("%d\n", *newData);

	i.chave = 6;
	pv = &i;
	other = pv;
	pi = (NoAB *)test(other);

	i.chave = 7;

	printf("%d\n", pi->chave);

	A.left = (PtCelulaTmp)malloc(sizeof(CelulaTmp));

	free(A.left);
	A.right = (PtCelulaTmp)malloc(sizeof(CelulaTmp));
	free(A.right);

	NoAB *raiz;
	raiz = criarNoAB(5);
	raiz->fe = criarNoAB(3);
	raiz->fd = criarNoAB(8);

	raiz->fe->fe = criarNoAB(2);
	raiz->fe->fd = criarNoAB(4);

	raiz->fd->fe = criarNoAB(7);
	raiz->fd->fd = criarNoAB(12);

	raiz->fe->fe->fe = criarNoAB(30);

	puts("Pré-ordem: ");
	preOrdem(raiz);
	printf("\n");

	puts("Pós-ordem: ");
	posOrdem(raiz);
	printf("\n");

	puts("Em ordem: ");
	emOrdemNoAB(raiz);
	printf("\n");

	puts("Em nível: ");
	emNivel(raiz);
	printf("\n");

	return (0);
}