int main(int argc,char *argv[]) { const char file_name[] = "registro.c"; char word[T_STRING]; /** * Obs, o arquivo avaliado é esse mesmo, logo deve ser considerado a string usada na chamada da * função, vamos considerar como +(s) = 2 *Testes * ana+ana+ana = 1+1+1+(s) = 5 * pof + pof +pof + pof + (s) = 6 * &&$ + &&$ + (s) = 4 * a*a*a*a*a* + (s) = 7 */ printf("\n Teste 1 \n\n"); printf("Total ana: %d \n",pesquisa(file_name,"ana")); printf("Total pof: %d \n",pesquisa(file_name,"pof")); printf("Total &&$: %d \n",pesquisa(file_name,"&&$")); printf("Total a*: %d \n",pesquisa(file_name,"a*")); // teste com vogais printf("\n\n\n Teste 2 Vogais \n\n\n"); printf("Total a: %d \n",pesquisa(file_name,"a")); printf("Total e: %d \n",pesquisa(file_name,"e")); printf("Total i: %d \n",pesquisa(file_name,"i")); printf("Total o: %d \n",pesquisa(file_name,"o")); printf("Total u: %d \n",pesquisa(file_name,"u")); // teste com usuario printf("\nDigite uma busca: "); fgets(word,T_STRING,stdin); // MEGA pog apoiado pela comunidade para usar fgets xD word[strlen(word)-1] = '\0'; printf("\n\nSUA PESQUISA '%s'=: %d \n",word,pesquisa(file_name,word)); }
void pesquisa(char c, node* n) { if (n == NULL) printf("%c nao existe\n", c); else if (c == n->c) printf("%c existe\n", c); else if (c < n->c) pesquisa(c, n->esq); else pesquisa(c, n->dir); }
PArv busca_sucessor(PArv arv, PArv* pai){ PArv aux; for(aux=arv->dir; aux->esq != NULL; aux = aux->esq); return pesquisa(arv, pai, aux->chave); }
int main() { char lin[100]; // Lê e insere o primeiro elemento gets(lin); node* raiz = new node(lin[2]); while (gets(lin) != NULL) { switch (lin[1]) { case ' ': lin[0] == 'I' ? insert(lin[2], raiz) : pesquisa(lin[2], raiz); break; case 'N': primeiro = true; inorder(raiz); putchar('\n'); break; case 'R': primeiro = true; preorder(raiz); putchar('\n'); break; case 'O': primeiro = true; postorder(raiz); putchar('\n'); } #if DESALOCA desaloca(raiz); #endif } return 0; }
PArv pesquisa(PArv arv, PArv* pai, int x){ if(arv == NULL){ return NULL; } else if(arv->chave == x){ return arv; } else if(x < arv->chave){ *pai = arv; return pesquisa(arv->esq, pai, x); } else{ *pai = arv; return pesquisa(arv->dir, pai, x); } }
//obtem um Elemento da Hash dada sua chave Elemento * obtemDaHash(Hash* h, Chave c,int boolSBB ){ int pos = funcaoHash(c, h); Elemento *x; if (boolSBB==1){ x = pesquisaSBB(h->hashSBB, &c); } else{ x = pesquisa(h->hash, &c); } return x; }
int lru(Tipo_Lista * memoria, struct tipo_elemento pagina) { int ret = -1; struct tipo_elemento * p; p = pesquisa(memoria, pagina.valor); if (p == NULL) { insere(memoria, pagina.valor); ordena(memoria->inicio, memoria->qtd); } else { ret = (memoria->qtd - p->acessos); elimina(memoria, p); insere(memoria, pagina.valor); ordena(memoria->inicio, memoria->qtd); } return ret; }
bool remove_no(PArv* arv, int x){ PArv a_ser_removido, pai_do_removido=NULL; PArv sucessor, pai_do_sucessor=NULL; if(*arv == NULL){ return false; } a_ser_removido = pesquisa(*arv, &pai_do_removido, x); if(a_ser_removido == NULL) return false; if(a_ser_removido->dir == NULL){ if(a_ser_removido == *arv){ *arv = a_ser_removido->esq; } else if(pai_do_removido->dir == a_ser_removido){ pai_do_removido->dir = a_ser_removido->esq; } else if(pai_do_removido->esq == a_ser_removido){ pai_do_removido->esq = a_ser_removido->esq; } free(a_ser_removido); return true; } else if(a_ser_removido->esq == NULL){ if(a_ser_removido == *arv){ *arv = a_ser_removido->dir; } else if(pai_do_removido->dir == a_ser_removido){ pai_do_removido->dir = a_ser_removido->dir; } else if(pai_do_removido->esq == a_ser_removido){ pai_do_removido->esq = a_ser_removido->dir; } free(a_ser_removido); return true; } else{ sucessor = busca_sucessor(a_ser_removido, &pai_do_sucessor); a_ser_removido->chave = sucessor->chave; return remove_no(&(a_ser_removido->dir), sucessor->chave); } }
void retirar_carro(ESTAC *estac, char *placa) { TipoItem carro; if (!strcmp(estac->carros[estac->norte - 1].placa, placa)) { Desenfileira_ESTAC(estac, &carro); carro.manobras++; mensagem(carro, SAIDA); deslocar(estac, SAIDA); return; } else if (pesquisa(estac, placa)) { TipoFila temp; Inicia(&temp); int aux = estac->norte - 1; while (strcmp(estac->carros[aux].placa, placa)) { Desenfileira_ESTAC(estac, &carro); carro.manobras++; Enfileira(carro, &temp); aux++; } Desenfileira_ESTAC(estac, &carro); carro.manobras++; mensagem(carro, SAIDA); deslocar(estac, aux); aux--; Apontador paux = temp.tras; while (aux >= 0) { estac->carros[aux] = paux->carro; estac->carros_count++; paux = paux->Ant; aux--; } } else printf("\nPlaca %s nao encontrada\n", placa); }
int main(){ PArv arv, pai, aux; int n, i; pai = NULL; arv = NULL; carrega(&arv, &n); scanf("%d", &i); aux = pesquisa(arv, &pai, i); if(aux != NULL){ remove_no(&arv, aux->chave); } else{ arv = insere(arv, i); } Imprime(arv); printf("\n"); return 0; }
int main() { int op, cod, ret, i, repete, posicao, opc; char Nome[50], sexo; float nota; zeracad(); do { system("cls"); op = menu(); if(op == 1) { i = qtd; system("cls"); printf("digite o codigo do aluno: "); scanf("%d",&cod); ret = pesquisa(cod); system("cls"); if(ret == 1) { printf("ja existe aluno com este codigo\n\n"); printf("press qualquer tecla p continuar..."); getch(); } else { cadastro[i].codigo = cod; fflush(stdin); printf("Nome do aluno: "); gets(Nome); strcpy(cadastro[i].nome, Nome); printf("Sexo 'f' ou 'm': "); scanf("%c",&sexo); cadastro[i].sexo = sexo; fflush(stdin); printf("Nota1: "); scanf("%f",¬a); cadastro[i].n1 = nota; printf("Nota2: "); scanf("%f",¬a); cadastro[i].n2 = nota; printf("Nota3: "); scanf("%f",¬a); cadastro[i].n3 = nota; printf("Nota4: "); scanf("%f",¬a); cadastro[i].n4 = nota; system("cls"); printf("Codigo: %d\n",cadastro[i].codigo); printf("Nome: %s\n",cadastro[i].nome); printf("sexo: %c\n",cadastro[i].sexo); printf("Nota1: %.1f\n",cadastro[i].n1); printf("Nota2: %.1f\n",cadastro[i].n2); printf("Nota3: %.1f\n",cadastro[i].n3); printf("Nota4: %.1f\n\n",cadastro[i].n4); printf("aluno cadastrado!\n\n"); printf("press qualquer tecla p continuar..."); qtd++; getch(); } } else if(op == 2) { system("cls"); printf("digite o codigo do aluno: "); scanf("%d",&cod); posicao = pesquisaaltera(cod); if(posicao == -1) { printf("Nao existe aluno cadastrado\n\n"); printf("press qualquer tecla p continuar..."); getch(); } else { system("cls"); printf("1.alterar nome do aluno\n"); printf("2.alterar sexo do aluno\n"); printf("3.alterar nota\n"); scanf("%d",&op); system("cls"); fflush(stdin); if(op == 1) { printf("Novo nome: "); gets(Nome); strcpy(cadastro[posicao].nome, Nome); printf("%s\n",cadastro[posicao].nome); printf("%c\n",cadastro[posicao].sexo); printf("%.1f\n",cadastro[posicao].n1); printf("%.1f\n",cadastro[posicao].n2); printf("%.1f\n",cadastro[posicao].n3); printf("%.1f\n",cadastro[posicao].n4); } else if(op == 2) { printf("Novo sexo: 'm' ou 'f'"); scanf("%c",&sexo); cadastro[posicao].sexo = sexo; printf("%s\n",cadastro[posicao].nome); printf("%c\n",cadastro[posicao].sexo); printf("%.1f\n",cadastro[posicao].n1); printf("%.1f\n",cadastro[posicao].n2); printf("%.1f\n",cadastro[posicao].n3); printf("%.1f\n",cadastro[posicao].n4); } else if(op == 3) { system("cls"); fflush(stdin); printf("1.modificar nota 1\n"); printf("2.modificar nota 2\n"); printf("3.modificar nota 3\n"); printf("4.modificar nota 4\n"); scanf("%d",&opc); if(opc == 1) { printf("Nova nota1:"); scanf("%f",¬a); cadastro[posicao].n1 = nota; } if(opc == 2) { printf("Nova nota2:"); scanf("%f",¬a); cadastro[posicao].n2 = nota; } if(opc == 3) { printf("Nova nota3:"); scanf("%f",¬a); cadastro[posicao].n3 = nota; } if(opc == 4) { printf("Nova nota4:"); scanf("%f",¬a); cadastro[posicao].n4 = nota; } system("cls"); printf("%d\n",cadastro[posicao].codigo); printf("%s\n",cadastro[posicao].nome); printf("%c\n",cadastro[posicao].sexo); printf("%.1f\n",cadastro[posicao].n1); printf("%.1f\n",cadastro[posicao].n2); printf("%.1f\n",cadastro[posicao].n3); printf("%.1f\n",cadastro[posicao].n4); } else printf("opcao invalida!\n\n"); getch(); } } else if(op == 3) { fflush(stdin); printf("Digite o codigo do aluno: "); scanf("%d", &cod); posicao = pesquisaaltera(cod); opc=0; if(posicao == -1) { printf("Aluno inesistente!"); getch(); } else { printf("Deseja excluir este aluno?"); printf("1 - Sim\n"); printf("2 - nao\n"); scanf("%d", &opc); } if(opc == 1) { for(int i = posicao; i < qtd-1; i++) { cadastro[i]=cadastro[i+1]; //cadastro[posicao].codigo = cadastro[posicao ++].codigo; //strcpy(cadastro[posicao].nome,cadastro[posicao ++].nome); //cadastro[posicao].sexo = cadastro[posicao ++].sexo; //cadastro[posicao].n1 = cadastro[posicao ++].n1; //cadastro[posicao].n2 = cadastro[posicao ++].n2; //cadastro[posicao].n3 = cadastro[posicao ++].n3; //cadastro[posicao].n4 = cadastro[posicao ++].n4; //posicao++; } qtd--; } printf("codigo: %d", cadastro[0].codigo); printf("\nNome: %s", cadastro[0].nome); printf("\nSexo: %c", cadastro[0].sexo); printf("\nNota 1: %.1f", cadastro[0].n1); printf("\nNota 2: %.1f", cadastro[0].n2); printf("\nNota 3: %.1f", cadastro[0].n3); printf("\nNota 4: %.1f", cadastro[0].n4); printf("\n\ncodigo: %d", cadastro[1].codigo); printf("\nNome: %s", cadastro[1].nome); printf("\nSexo: %c", cadastro[1].sexo); printf("\nNota 1: %.1f", cadastro[1].n1); printf("\nNota 2: %.1f", cadastro[1].n2); printf("\nNota 3: %.1f", cadastro[1].n3); printf("\nNota 4: %.1f", cadastro[1].n4); getch(); } else printf("Opcao Invalida!"); system("cls"); printf("repetir programa? ESC sair outra tecla repetir"); op = getch(); } while(op != 27); return 0; }