Esempio n. 1
0
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);
}
Esempio n. 3
0
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;
}
Esempio n. 5
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;
}
Esempio n. 7
0
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;
}
Esempio n. 8
0
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);
}
Esempio n. 10
0
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;
}
Esempio n. 11
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",&nota);
                    cadastro[i].n1 = nota;
                    printf("Nota2: ");
                    scanf("%f",&nota);
                    cadastro[i].n2 = nota;
                    printf("Nota3: ");
                    scanf("%f",&nota);
                    cadastro[i].n3 = nota;
                    printf("Nota4: ");
                    scanf("%f",&nota);
                    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",&nota);
                        cadastro[posicao].n1 = nota;
                    }   
                    if(opc == 2)
                    {
                        printf("Nova nota2:");
                        scanf("%f",&nota);
                        cadastro[posicao].n2 = nota;
                    }
                    if(opc == 3)
                    {
                        printf("Nova nota3:");
                        scanf("%f",&nota);
                        cadastro[posicao].n3 = nota;
                    }
                    if(opc == 4)
                    {
                        printf("Nova nota4:");
                        scanf("%f",&nota);
                        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;
       
}