Arvore binaria

252 palavras 2 páginas
Arvore Binaria
/* Este programa criar uma arvore binaria */
/* autor: Cao Ji Kan Data: 20/03/2013 */
#include <stdlib.h>
#include <stdio.h>

struct treeNo { char info; struct treeNo *left; struct treeNo *right;
};

struct treeNo *root; /* primeiro no da arvore */ struct treeNo *geratree(int n); void emOrdem(treeNo *no); void posOrdem(treeNo *no); void preOrdem(treeNo *no);

main()
{
root = NULL; /* inicializa a ra¡z */ int n; printf("Digite o numeros de nos para uma arvore binaria!\n"); scanf("%d",&n); root = geratree(n); //printf("Impressao da arvore binaria:\n"); //implementação printf(" IN ORDEM \n"); emOrdem(root); printf("POS ORDEM \n"); posOrdem(root); printf("PRE ORDEM \n"); preOrdem(root); system("pause");
}

struct treeNo *geratree(int n)
{
struct treeNo *newno; int ne, nd; char x; if (n == 0) return NULL; else { ne = n/2; nd = n-1-ne; printf("Digite uma letra: "); getchar(); // pegar "enter". sem este nao funcina para C scanf("%c",&x); newno = (struct treeNo *) malloc(sizeof(struct treeNo)); if(!newno) { printf("sem memoria\n"); exit(0); } newno->info = x; newno->left = geratree(ne); newno->right = geratree(nd); return newno; }
}

void emOrdem(treeNo *no){ if(no != NULL){ emOrdem(no->left); printf("%c\n", no->info); emOrdem(no->right); }
}

void posOrdem(treeNo *no){ if(no != NULL){ posOrdem(no->left); posOrdem(no->right); printf("%c\n", no->info); }
}

void preOrdem(treeNo *no){ if(no != NULL){ printf("%c\n", no->info); preOrdem(no->left); preOrdem(no->right); }

Relacionados

  • Arvore Binaria
    2327 palavras | 10 páginas
  • Arvore binária
    1053 palavras | 5 páginas
  • Arvore binaria
    474 palavras | 2 páginas
  • Arvore binaria
    660 palavras | 3 páginas
  • árvore binária
    917 palavras | 4 páginas
  • Arvore Binaria
    555 palavras | 3 páginas
  • Arvore Binaria
    865 palavras | 4 páginas
  • Arvore Binaria
    1080 palavras | 5 páginas
  • Árvore Binárias
    1501 palavras | 7 páginas
  • Arvore Binaria
    691 palavras | 3 páginas