void em_ordem(NoABP *n, void (*mostra_info)(void *) ){ //modificado if(n != NULL){ em_ordem(n->esq, (*mostra_info) ); //(*mostra_info)(n->info); (*mostra_info)(n); em_ordem(n->dir, (*mostra_info) ); } }
void em_ordem(tree * figueira, nodo * temp){ if (temp != NULL){ em_ordem(figueira, temp->esq); display(temp); em_ordem(figueira, temp->dir); } }
void em_ordem(struct no* atual) { int j=0; if(atual!=NULL) { em_ordem(atual->esq); printf("%s -", atual->palavra); //imprime a palavra printf(" %d vezes nas paginas = ", atual->contador); //impreme quantas vezes ela apareceu while(j < atual->contador) { printf("%d,",atual->pag[j]); //imprime as paginas que a palavra apareceu j++; } printf("\n"); em_ordem(atual->dir); } }
void percurso_em_ordem(ABP a, void (*mostra_info)(void *) ){ if(a.raiz == NULL) printf("Arvore vazia!\n"); else{ printf("Percurso Em-Ordem:\n\n"); em_ordem(a.raiz, (*mostra_info) ); } printf("----------------------\n\n"); }
main(){ char palavra[TAM]; FILE *fp; fp = fopen("texto.txt", "r"); while(!feof(fp)){ fscanf(fp,"%s", palavra); if(strcmpi(palavra, "") != 0) verifica(palavra); strcpy(palavra,"");//Pra nao correr o risco de inserir lixo de memoria.. } // ..a variavel palavra é "zerada" em_ordem(raiz); getch(); }
// ------------------------------------------------------------------------------ // Funcao main // ------------------------------------------------------------------------------ int main() { tree * figueira; int escolha; figueira = init(); for ( ; ; ){ escolha = menu(); switch(escolha){ case 1:inserir(figueira); break; case 2: excluir(figueira); break; case 3: pesquisar(figueira); break; case 4: h(figueira); break; case 5: { printf("\n"); printf("5. Em ordem\n"); printf("------------------------\n"); em_ordem(figueira, figueira->raiz); printf("\n"); } break; case 6: { printf("\n"); printf("6. Pre ordem\n"); printf("------------------------\n"); pre_ordem(figueira, figueira->raiz); printf("\n"); } break; case 7: { printf("\n"); printf("7. Pos ordem\n"); printf("------------------------\n"); pos_ordem(figueira, figueira->raiz); printf("\n"); } break; case 8: exit(0); break; } } }
int main(int argc, char *argv[]) { int op; char *palavra_chave = (char *) malloc(20 * sizeof(char)); ARVORE_BINARIA *ab = criar_arvore(); leitura_arq_palavras(ab); char continua; do { system("clear"); printf("Entre com a opcao desejada:\n----------------------------------\n"); printf("1 - Inserir palavra-chave\n"); printf("2 - Mostrar indice remissivo\n"); printf("3 - Buscar por palavra\n"); printf("4 - Sair\n"); printf("Opcao: "); scanf(" %d", &op); fflush(stdin); switch (op) { case 1: printf("Nova palavra: "); scanf(" %s", palavra_chave); inserir_pc(ab, palavra_chave); printf("\nDigite q + ENTER para continuar: "); scanf(" %c", &continua); break; case 2: em_ordem(ab); printf("\nDigite q + ENTER para continuar: "); scanf(" %c", &continua); break; case 3: printf("Palavra: "); scanf(" %s", palavra_chave); leitura(ab, palavra_chave); printf("\nDigite q + ENTER para continuar: "); scanf(" %c", &continua); break; } } while (op >= 0 && op < 4); free(palavra_chave); return 0; }
void excluir(tree * figueira){ element * temp; nodo * aux; if (!(temp = malloc(sizeof(element)))){ printf("\n"); printf("Erro no malloc do elemento."); printf("\n"); exit(1); } printf("Elementos inseridos: "); aux = figueira->raiz; em_ordem(figueira, aux); printf("\n"); printf("2. Excluir\n"); printf("------------------------\n"); printf("Elemento: "); scanf("%d", &(temp->valor)); printf("\n"); exclude(figueira->raiz, temp); // ---------------- if (aux == NULL) { printf("Arvore vazia\n"); printf("\n"); } else { printf("Ok! Elemento excluido.\n"); printf("\n"); } }