int main(){ LISTA lista; inicializar(&lista); inserir(4, &lista); inserir(6, &lista); inserir(2, &lista); inserir(3, &lista); inserir(1, &lista); inserir(5, &lista); mostrarLista(lista); excluir(2, &lista); excluir(4, &lista); excluir(6, &lista); mostrarLista(lista); // Exemplo de busca na lista PONT aux; int valor = 2; if( buscaSequencial(valor, lista, &aux) != NULL ) printf("Valor %d encontrado.\n", valor ); else printf("Valor %d não encontrado.\n", valor); return 0; }
//Método Main() int main() { char opcao='0'; while(opcao!='4') { menu(); opcao=getchar(); fflush(stdin); // Valida a opção digitada após a chamada do método menu() switch(opcao) { case'1':insere(); break; case'2':excluir(); break; case'3':imprime(); getchar(); break; case'4':printf("\nFim de Execucao"); getchar(); exit(1); default: break; } } }
no* excluir(no *T, int x){ no *p; if(T == NULL){ return NULL; }else if(x > T->dado){// Insere na sub arvore correta T->direito = excluir(T->direito, x); if(difAlturaEsq_e_Dir(T) == 2){ if(difAlturaEsq_e_Dir(T->esquerdo) >= 0) T = balanc2Esquerda(T); else T = balancEsquerdaDireita(T); } }else if(x < T->dado){ T->esquerdo = excluir(T->esquerdo, x); if(difAlturaEsq_e_Dir(T) == -2){//'deslize' os dados para rebalancear if(difAlturaEsq_e_Dir(T->direito) <= 0) T = balanc2Direita(T); else T = balancDireitaEsquerda(T); } }else{//Dado deve ser excluido se encontrado if(T->direito != NULL){//exclua o seu sucessor direto p = T->direito; while(p->esquerdo!= NULL) p = p->esquerdo; T->dado = p->dado; T->direito = excluir(T->direito, p->dado); if(difAlturaEsq_e_Dir(T) == 2){//'deslize' os dados para rebalancear if(difAlturaEsq_e_Dir(T->esquerdo) >= 0) T = balanc2Esquerda(T); else T = balancEsquerdaDireita(T); } }else return(T->esquerdo); } T->altura=altura(T); return(T); }
// Funções void main() { int op1; do { // Menu op1 = menu(); switch(op1) { // 1. Cadastrar case 1: cadastrar(); break; // 2. Alterar case 2: alterar(); break; // 3. Excluir case 3: excluir(); break; // 4. Pesquisar case 4: pesquisar(); break; // 5. Carregar banco de dados case 5: carregar(); break; // 6. Salvar banco de dados case 6: salvar(); break; // 7. Limpar banco de dados case 7: limpar(); break; // 8. Sair case 8: printf("\n\n\tAte mais!\n"); getch(); break; // Outros default: printf("\n\n\tDigite uma opcao valida!\n\t[Pressione qualquer tecla para continuar...]\n"); getch(); break; } } while (op1!=8);
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; }
// ------------------------------------------------------------------------------ // 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 menuCrud(int opcE){ int opcO, //var que recebe a oopc do menu crud bolinho = 0; //var de controle pra voltar ao menu de ent //aqui vai o menu crud printf("Insira a operacao desejada:\n"); printf("\t1 - Inserir\n\t2 - Excluir\n\t3 - Atualizar\n\t4 - Buscar\n\t\t\t\t -1 - VOLTAR\n\t: "); scanf("%d", &opcO); getchar(); //fflush(stdin); switch(opcO){ case 1: inserir(opcE); break; case 2: excluir(opcE); break; case 3: atualizar(opcE); break; case 4: buscar(opcE); break; case -1: bolinho = 1; printf("Bolinho com mostarda\n"); break; default: printf("Opção invalida!"); break; } system("clear"); if(bolinho == 1){ return 1; }else{ menuCrud(opcE); } return 0; }
int main() { Aluno meuAluno; Turma minhaTurma; int resultado,opcao,m; Aluno *pAluno; // Iniciar com a lista vazia minhaTurma.pPrimeiraCelula = NULL; // Menu principal do { system("cls"); printf("\n"); printf(" CADASTRO DE ALUNOS\n"); printf("\n"); printf(" 1 - INCLUIR UM NOVO ALUNO\n"); printf(" 2 - EXIBIR LISTA\n"); printf(" 3 - PESQUISAR ALUNO\n"); printf(" 4 - EXCLUIR ALUNO\n"); printf(" 5 - SAIR DO PROGRAMA\n"); printf("\n"); printf("OPCAO DESEJADA: "); scanf("%d",&opcao); // 1 - INSERIR NOVO ALUNO if (opcao == 1) { system("cls"); printf("\nINCLUIR NOVO ALUNO\n\n"); printf("Matricula: "); scanf("%d",&(meuAluno.matricula)); printf("Nome: "); scanf("%s",meuAluno.nome); printf("C.R.: "); scanf("%f",&(meuAluno.cr)); resultado = inserir(&minhaTurma,&meuAluno); if (resultado==0) printf("\n\nInclusao bem sucedida\n\n"); if (resultado==1) printf("\n\nErro 1: Lista cheia\n\n"); if (resultado==2) printf("\n\nErro 2: Matricula Duplicada\n\n"); } // 2 - EXIBIR LISTA if (opcao == 2) { listar(&minhaTurma); } // 3 - PESQUISAR ALUNO if (opcao == 3) { //system("cls"); printf("\nPESQUISAR ALUNO\n\n"); printf("Matricula: "); scanf("%d",&m); pAluno = recuperar(&minhaTurma,m); if (pAluno) { printf("\nNome = %s\n",pAluno->nome); printf( "C.R. = %4.1f\n\n",pAluno->cr); } else { printf("\n\n ERRO: Aluno nao encontrado\n\n"); } } // 4 - EXCLUIR ALUNO if (opcao == 4) { //system("cls"); printf("\nEXCLUIR ALUNO\n\n"); printf("Matricula: "); scanf("%d",&m); resultado = excluir(&minhaTurma,m); if (resultado==0) printf("\n\nExclusao bem sucedida.\n\n"); if (resultado==1) printf("\n\nAluno nao encontrado.\n\n"); if (resultado==2) printf("\n\nLista vazia.\n\n"); } //system("pause"); } while (opcao != 5); return 0; }
int main(void) { AGENDA * pAgenda; int iEntradas, op; iEntradas=0; pAgenda = (AGENDA *) malloc(sizeof(AGENDA)); /* alocando espaco para a posicao 0 do vetor */ if( pAgenda == NULL ) { printf("\nErro de alocacao de memoria."); exit(1); } do { fflush(stdin); printf("\n1 - Inclusao"); printf("\n2 - Alteracao"); printf("\n3 - Consulta"); printf("\n4 - Excluir"); printf("\n5 - Pesquisar"); printf("\n9 - Sair"); printf("\nEntre com uma opcao -> "); scanf("%d", &op); if( op == 1 ) { /* farei aqui para ilustrar algumas formas de manipular ponteiros */ fflush(stdin); /* alocacao de ponteiros em funcoes requer trabalhar com ponteiros para ponteiros */ aloca(&pAgenda, &iEntradas); printf("*** Inclusao ***"); printf("\nEntre com o Nome:"); /* forma 1 - endereco ponteiro inicial + x posicoes na memoria quando se trabalhar com o endereco, deve-se usar -> */ gets((pAgenda+iEntradas)->nome); fflush(stdin); printf("Entre com o email:"); /* forma 2 - endereco ponteiro inicial + x posicoes na memoria quando se trabalhar com ponteiro (conte?do do endereco ou *), deve-se usar o . (ponto) */ gets((*(pAgenda+iEntradas)).email); fflush(stdin); printf("Entre com o telefone:"); /* forma 3 - trabalhando como vetor */ scanf("%d", &pAgenda[iEntradas].telefone); fflush(stdin); iEntradas++; } else if( op == 2) { alterar(pAgenda, iEntradas); } else if( op == 3 ) { /* se o vetor de estruturas vai ser somente lido nao eh preciso passar ponteiro para ponteiro */ ordena(pAgenda, iEntradas); consulta(pAgenda, iEntradas); } else if( op == 4) { ordena(pAgenda, iEntradas); excluir(&pAgenda, &iEntradas); } else if( op == 5) { ordena(pAgenda, iEntradas); pesquisar(pAgenda,iEntradas); } } while(op!=9); }
void test_exclui(void){ excluir(1); CU_ASSERT_EQUAL(buscar(1),0); }