//IMPRIME EM ORDE CRESCENTE. void emordem(NODE *apontno){ if(apontno != NULL){ emordem(apontno->esq); //IMPRIME <8 printf("%d\t",apontno->dado); //IMPRIME =8 emordem(apontno->dir); //IMPRIME >8 } }
void emordem(arvore *r) { if (r != NULL) { emordem(r->esq); printf("Caractere Alfanumérico:%c Caractere Binário:%d \n" , r->alfa, r->bin); emordem(r->dir); } }
void emordem(arvore *aux){ if(aux!=NULL){ emordem(aux->esq); printf("%i ",aux->info); emordem(aux->dir); } }//metodo de ordem
void emordem(no *raiz) { //faz a impressão do menor para o maior, logo ela ira diminuir ao maximo os valores, imprimir, aumentar o minimo possivel e reimprimir if(raiz != NULL) { //verifica se o elemento existe emordem(raiz->esq); //re-executa a função com o elemento da esquerda para chegar no menor possivel printf("%d ", raiz->chave); //faz a impressão emordem(raiz->dir); //re-executa a função aumentando os valores chave } //ou seja imprime em ordem crescente de valores chave }
void emordem(no *arvore){ if(arvore != NULL){ emordem(arvore->esq); printf("%d\n",arvore->chave); emordem(arvore->dir); } }
void emordem(struct arvore*no){ if(no!=NULL){ emordem(no->esq); printf ("%d\n", no->chave); emordem(no->dir); } }
void emordem(struct pessoa*no) //Imprimimos os antepassados de uma pessoa. Uma vez que não é possível voltar no emordem, basta fazer com que a raiz seja a pessoa cujos antepassados desejamos saber { if(no!=NULL) { emordem(no->esq); printf("%s", no->nome); emordem(no->dir); } }
void emordem(Arv *raiz) { if (raiz != NULL) { emordem(raiz->esq); printf("%d.", raiz->elem); emordem(raiz->dir); } }
void emordem(struct arvore*no)//Imprime Infixa { if(no!=NULL) { emordem(no->esquerda); if (no->entrada[0] >= 48 && no->entrada[0] <=57) printf("("); printf("%s", no->entrada); if (no->entrada[0] >= 48 && no->entrada[0] <=57) printf(")"); emordem(no->direita); } }
/* A impressoo Em Ordem eh utilizada para a impressao da notacao infixa*/ void emordem(struct arvore*no) { if(no!=NULL) { emordem(no->esq); if (no->entrada[0] >= 48 && no->entrada[0] <=57) printf("("); printf("%s", no->entrada); if (no->entrada[0] >= 48 && no->entrada[0] <=57) printf(")"); emordem(no->dir); } }
/*FUNÇAO PARA DELETAR NÓS void remover(NODE **pRaiz, int numero){ NODE *pAux = NULL; if(numero < (*pRaiz)->dado) remover(&(*pRaiz)->esq, numero); else if (numero > (*pRaiz)->dado) remover(&(*pRaiz)->dir, numero); else{ pAux = *pRaiz; if((*pRaiz)->esq == NULL) *pRaiz = (*pRaiz)->dir; else if((*pRaiz)->dir == NULL) *pRaiz = (*pRaiz)->esq; } } */ int main(){ NODE *arvore = NULL; insert(&arvore,1); insert(&arvore,3); insert(&arvore,5); insert(&arvore,7); insert(&arvore,9); insert(&arvore,2); insert(&arvore,4); insert(&arvore,6); insert(&arvore,8); insert(&arvore,10); printf("EM ORDEM:"); printf("\n"); emordem(arvore); printf("\n\n"); printf("PRE ORDEM:"); printf("\n"); preordem(arvore); printf("\n\n"); printf("POS ORDEM:"); printf("\n"); posordem(arvore); printf("\n\n"); }
int main() { struct arvore *raiz = NULL; int i = 1, j = 1, k, escolha; char a[1], b[1]; printf("Ola! Este programa ira converter uma entrada em notacao polonesa para a notacao polonesa reversa (RPN) e infixa.\n"); printf("Digite sua equacao em notacao polonesa\n(separe os simbolos e numeros todos por um 'espaco' e depois tecle 'Enter'):\n"); raiz = (struct arvore *)malloc(sizeof(struct arvore)); // cria a raiz raiz->esq = NULL; //aterra a raiz raiz->dir = NULL; scanf("%s", a); strcpy(raiz->entrada, a); scanf("%s", a); while(a[0] == 42 || a[0] == 43 || a[0] == 45 || a[0] == 47) //enquanto sao entrados sinais, cahama a funcao insertsign { insertsign(raiz, a); scanf("%s", a); i++; } insertnum(raiz, a, j, i); //quando sao inseridos numeros, passa a chamar a funcao insertnum for (j = 2; j < i + 2; j++) { scanf("%s", a); insertnum(raiz, a, j, i); } while (escolha != 3) //repete o menu ate que seja escolhida a opcao "sair" { printf("\n\nO que voce deseja fazer? Digite o numero correspondente!\n"); printf("1 - Impressao na notacao polonesa reversa (RPN)\n2 - Impressao na notacao infixa\n3 - Sair\n\n"); scanf("%d", &escolha); if (escolha > 3 || escolha <1) //caso seja escolhida uma opcao fora do menu, uma mensagem de erro eh impressa { printf("Favor entrar com uma das opcoes do menu.\n"); } else { switch(escolha) { case 1: printf("\nPolonesa reversa:\n"); posordem(raiz); break; case 2: printf("\nNotacao infixa:\n"); printf("("); emordem(raiz); printf(")"); } } } }
int main() { struct arvore *raiz = NULL; int i = 1, j = 1, k, menu; char a[1], b[1]; printf("Digite sua equacao em notacao polonesa separando os numeros e sinais por espaco e entao tecle Enter:\n"); raiz = (struct arvore *)malloc(sizeof(struct arvore)); //aloca memoria para a raiz criada raiz->esquerda = NULL; raiz->direita = NULL; scanf("%s", a); strcpy(raiz->entrada, a); scanf("%s", a); while(a[0] == 42 || a[0] == 43 || a[0] == 45 || a[0] == 47) { InserirSinal(raiz, a); scanf("%s", a); i++; } InserirNro(raiz, a, j, i); for (j = 2; j < i + 2; j++) { scanf("%s", a); InserirNro(raiz, a, j, i); } while (menu != 3) //repete o menu ate que seja escolhida a opcao "sair" { printf("Digite 1 para imprimir em RPN, 2 para imprimir em notacao infixa e 3 para sair\n"); scanf("%d", &menu); if (menu > 3 || menu <1) { printf("Escolher uma opção válida para o menu:\n"); } else { switch(menu) { case 1: printf("\nRPN:\n"); posordem(raiz); break; case 2: printf("Infixa:\n"); emordem(raiz); break; } } } }
int main () { Arv *a = NULL; int op; scanf("%d",&op); while(op != -1) { if(op == 1) { int elem; scanf("%d", &elem); a = inserir(a, elem); } else { int elem; scanf("%d", &elem); a = remover(a, elem); } scanf("%d",&op); } printf("Em largura: "); imprime_largura(a); printf("\nPre ordem: "); preordem(a); printf("\nEm ordem: "); emordem(a); printf("\nPos ordem: "); posordem(a); return 0; }
int main(int argc, char const *argv[]) { arvore a, *alfaToBin; int menu; alfaToBin->esq = NULL; alfaToBin->dir = NULL; alfaToBin->ordenar = 17; alfaToBin->alfa = 'H'; alfaToBin->bin = 10001; alfaToBin = &a; alfaToBin = inicializarArvore(alfaToBin); while (true) { scanf("%d", &menu); switch (menu) { case 1: emordem(alfaToBin); case 2: traduzirPredefinidos(alfaToBin); case 3: traduzirQualquer(alfaToBin); case 4: break; } } return 0; }
int main(){ ARVORE_BINARIA arv1; criar(&arv1); NO *node; INFO item; item.chave = 1; item.valor = '+'; node = criar_raiz(&arv1, &item); item.chave = 2; item.valor = 'A'; inserir_esquerda(node, &item); item.chave = 3; item.valor = '*'; node = inserir_direita(node, &item); item.chave = 4; item.valor = 'B'; inserir_esquerda(node, &item); item.chave = 5; item.valor = 'C'; node = inserir_direita(node, &item); emordem(&arv1); printf("\n"); preordem(&arv1); printf("\n"); posordem(&arv1); printf("\n"); return 0; }
main() { int i, a, b, c, d, e; //variaveis auxiliares printf("Numero de Insercoes: "); scanf("%d", &a); //recolhe o numero de elementos printf("Elementos: "); for(i=0; i<a; i++) { fflush; scanf("%d", &b); //recolhe os elementos inserir(&raiz, b); //faz a inserção na arvore } printf("\n---> MENU <---\n-> 1 para imprimir a arvore."); //print do MENU printf("\n-> 2 para inserir elementos."); printf("\n-> 3 para remover elementos."); printf("\n-> 4 para buscar elementos."); printf("\n-> 0 para sair\n"); fflush; scanf("%d", &c); while(c!=0) { //codigo do MENU fflush; switch(c) { case 1: system("cls"); printf("Pre Ordem:\n"); preordem(raiz); printf("\nPos Ordem:\n"); posordem(raiz); printf("\nEm Ordem:\n"); emordem(raiz); printf("\nLabelled Bracketing:\n"); lb(raiz); printf("\n"); break; case 2: system("cls"); printf("Novo elemento: "); scanf("%d", &d); inserir(&raiz, d); break; case 3: system("cls"); printf("Elemento para remocao: "); scanf("%d", &d); remover(&raiz, d); break; case 4: system("cls"); printf("Elemento para busca: "); scanf("%d", &d); e = busca(raiz, d); if(e==1) printf("\nO elemento %d nao existe na arvore.\n", d); if(e==2) printf("\nO elemento %d existe na arvore.\n", d); break; } printf("\n---> MENU <---\n-> 1 para imprimir a arvore."); printf("\n-> 2 para inserir elementos."); printf("\n-> 3 para remover elementos."); printf("\n-> 4 para buscar elementos."); printf("\n-> 0 para sair\n"); fflush; scanf("%d", &c); } }
void main(){ char nome[10]; char nome1[10]; char nome2[10]; int d; char i,h; struct ponteiro p; struct ponteiro q; struct pessoa *raiz=(struct pessoa *)malloc(sizeof(struct pessoa));//Alocamos memoria para a raiz da arvore printf("Qual a primeira pessoa da arvore genealógica?\n"); gets(nome); raiz->nome=nome; raiz->geracao = 0; printf("%s\n", raiz->nome); insira(raiz);//Começamos a raiz propriamente aqui printf("Adicionar mais alguem? <S/N>"); scanf("%c", &h); if(h=='S' || h=='s'){ adiciona(raiz); } printf("Deseja fazer mais alguma coisa? \n1-)imprimir os membros por geracao \n2-)imprimir os antepassados de alguem \n "); printf("3-) imprimir labelled bracketing \n4-) calcular grau de parentesco \n5-) encerrar programa\n");//Aqui temos o menu scanf("%c",&i); if(i='1'){ printf("Qual geracao?"); scanf("%i", &d); print_gen(raiz,d); } else if(i='2'){ printf("De quem?"); gets(nome); emordem(raiz); } else if(i='3'){ imprimir_lb(raiz); } else if(i='4'){ printf("Pessoa 1:"); gets(nome1); printf("Pessoa 2"); gets(nome2); if(p.ponteiro->geracao > q.ponteiro->geracao){ grau(q.ponteiro, p.ponteiro, q.ponteiro->geracao); }else{ grau(p.ponteiro,q.ponteiro, p.ponteiro->geracao); } } else{ printf("Bye Bye"); } }
int main(void){ arvore *raiz=NULL; int op,achou,num; do{ printf("\nMENU"); printf("\n1 - Insere na Arvore"); printf("\n2 - Consultar um no da Arvore"); printf("\n3 - Consultar toda Arvore em pre-ordem"); printf("\n4 - Consultar toda Arvore em ordem"); printf("\n5 - Consultar toda Arvore em pos-ordem"); printf("\n6 - Excluir um no da Arvore"); printf("\n7 - Esvaziar toda Arvore"); printf("\n8 - Sair"); printf("\nOpcao: "); scanf("%i",&op); if(op==1){ printf("\nNumero a inserir na Arvore: "); scanf("%i",&num); raiz=insere(raiz,num); printf("\nNumero inserido!"); }//opção insere if(op==2){ if(raiz==NULL) printf("\nArvore vazia!"); else{ printf("\nNumero a ser consultado: "); scanf("%i",&num); achou=0; achou=consultar(raiz,num,achou); if(achou==1) printf("\nNumero existente na Arvore!"); else printf("\nNumero nao existente na Arvore!"); } }//opção busca numero if(op==3){ if(raiz==NULL) printf("\nArvore vazia!"); else{ printf("\nListando em pre-ordem\n"); preordem(raiz); } }//opçao listar preordem if(op==4){ if(raiz==NULL) printf("\nArvore vazia!"); else{ printf("\nListando em ordem\n"); emordem(raiz); } }//opçao listar em ordem if(op==5){ if(raiz==NULL) printf("\nArvore vazia!"); else{ printf("\nListando em pos-ordem\n"); posordem(raiz); } }//opçao listar pos ordem if(op==6){ if(raiz==NULL) printf("\nArvore vazia!"); else{ printf("\nInforme o numero a ser removido: "); scanf("%i",&num); achou=0; achou=consultar(raiz,num,achou); //verifica se o nó existe if(achou==0) printf("\nNumero nao existente na Arvore!"); else{ raiz=remover(raiz,num); printf("\nNumero removido!"); } } }//opçao remoção if(op==7){ if(raiz==NULL) printf("\nArvore vazia!"); else{ raiz=desalocar(raiz); printf("\nArvore desalocada!"); } }//opçao desaloca printf("\n************************************************************\n"); getc(stdin); }while(op>0 && op<9 && op!=8); return 0; }
int main(){ int n,a,b; no *raiz, *aux; raiz = NULL; int opcao; while(opcao!=12){ opcao = menu(); switch(opcao){ case 1: printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); printf("Digite -1 para terminar\n"); printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); do{ printf("Digite um numero: "); scanf("%d", &n); if(n!=-1){ insere(n, &raiz); } }while (n!=-1); //imprime(raiz,0); break; case 2: printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); printf("------> Pre-Ordem <------\n"); printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); preordem(raiz); break; case 3: printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); printf("------> Em-Ordem <------\n"); printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); emordem(raiz); break; case 4: printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); printf("------> Pos-Ordem <------\n"); printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); posordem(raiz); break; case 5: consultarDetalhes(raiz); break; case 6: b=contarNos(raiz); printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); printf(" A arvore possui %d nos!\n",b); printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); break; case 7: printf("ARVORE BINARIA\n"); imprime(raiz,0); break; default : printf("opcao nao existe! tente novamente"); break; } } return 0; }