Ejemplo n.º 1
0
TGrafo* insere_no(TGrafo* g, char* no){
    if(busca(g,no)){
        return g;
    }
    TGrafo * novo = (TGrafo*) malloc(sizeof(TGrafo));
    novo->info = (char*) malloc(sizeof(char)*20);
    strcpy(novo->info, no);
    novo->prim = NULL;
    novo->prox = g;
    return novo;

}
Ejemplo n.º 2
0
int busca(int* A, int esq, int dir, int x){
    int meio = (dir - esq)/2  + esq;

    if(dir < esq){
        return -1;
    }

    if(dir == esq && A[esq] != x){
        return -1;
    }

    if(A[meio] > x){
        return busca(A, esq, meio, x);
    }

    if(A[meio] < x){
        return busca(A, meio+1, dir, x);
    }

    return meio;
}
Ejemplo n.º 3
0
int main(){
	pPDDE pP;

	cria((&pP), sizeof(int));
	int x=7;
	insere(pP, &x);
	x=9;
	busca(pP, &x);
	printf(">>%d\n", x);

	return 0;
}
Ejemplo n.º 4
0
/**
 * Testa a função pot.
 */
int main () {
 	int v[9];
	v[0]=1;v[1]=2;v[2]=2;v[3]=4;v[4]=5;v[5]=6;v[6]=7;v[7]=8;v[8]=9;

	printf ("Teste 1: ");
	printf ("%d = %d \n", -1, busca(9,v));
   
	printf ("Teste 2: ");
	printf ("%d = %d \n", -1, busca(9,v));
   
	printf ("Teste 3: ");
	printf ("%d = %d \n", -1, busca(9,v));

	printf ("Teste 4: ");
	printf ("%d = %d \n", -1, busca(9,v));

	printf ("Teste 5: ");
	printf ("%d = %d \n", -1, busca(9,v));
   
	return 0;
}
Ejemplo n.º 5
0
/**************************************
insertar_nodo:
Inserta un nodo en el arbol de parsing.
***************************************/
void insertar_nodo(char* padre , char* nombre){
    struct Tnodo *aux; 
    auxi=NULL; 
    
    //aux=busca(root,padre,NULL);
    busca(root,padre);
    aux=auxi;
    if(aux!=NULL){
     Agrega_nodo(&aux,nombre);
    }
    else {printf("No se pudo insertar %s \n ",nombre);
     }
}
Ejemplo n.º 6
0
No_Lista* Lista::search(int p){

    if(pri == NULL)return NULL;
    else if(pri->info == p) return pri;
    No_Lista *aux = busca(p);
    if(aux->prox != NULL){

        return aux->prox;

    }
    return NULL;

}
Ejemplo n.º 7
0
int main() {
	HashTable h;
	int i;

	h = nova_tabela();

	insere(700, &h);
	insere(456, &h);
	insere(300, &h);

	i = busca(700, &h);
	printf("%d na posicao %d -> %d\n", 700, i, h.elementos[i]);
	i = busca(456, &h);
	printf("%d na posicao %d -> %d\n", 456, i, h.elementos[i]);
	i = busca(300, &h);
	printf("%d na posicao %d -> %d\n", 300, i, h.elementos[i]);

	deleta(300, &h);
	printf("Apos remocao do 300:\n");
	printf("%d na posicao %d -> %d\n", 300, i, h.elementos[i]);
	return 0;
}
Ejemplo n.º 8
0
void busca(int grafo[5][5], cord cordenadas[5][5], int i, int j) {
    if(i >= 0 && i < 5 && j >= 0 && j < 5 && !ganhador) {
        cordenadas[i][j].visitado = 1;
        if(i == 4 && j == 4) {
            ganhador = 1;
        }
        else {
            if(i+1 < 5 && grafo[i+1][j] == 0 && !cordenadas[i+1][j].visitado) {
                busca(grafo,cordenadas,i+1,j);
            }
            if(i-1 < 5 && grafo[i-1][j] == 0 && !cordenadas[i-1][j].visitado) {
                busca(grafo,cordenadas,i-1,j);
            }
            if(j+1 < 5 && grafo[i][j+1] == 0 && !cordenadas[i][j+1].visitado) {
                busca(grafo,cordenadas,i,j+1);
            }
            if(j-1 < 5 && grafo[i][j-1] == 0 && !cordenadas[i][j-1].visitado) {
                busca(grafo,cordenadas,i,j-1);
            }
        }
    }
}
Ejemplo n.º 9
0
void consultarValor(no* raiz){
	int num;
	no* aux;
	printf("Digite o numero procurado: ");
	scanf("%d", &num);

	aux = busca(raiz, num);
	if (aux == NULL)
		printf("Nao encontrado!\n");
	else{
		printf("Encontrado!\n");
		printf("O numero %d foi repetido %d vezes\n", num, aux->cont);
	}
}
Ejemplo n.º 10
0
int remover(LD *L, int num){
	no *p;
	p=busca(L, num);
	if(p->prox==NULL){
		L->fim=p->ant;
	}
	if(p->ant==NULL){
		L->inicio=p->prox;
	}
	p->ant->prox=p->prox;
	p->prox->ant=p->ant;
	L->quant--;
	return 1;
}		
bool gerenciadorCapturas::remove(capturas captura){
	int pos = busca(&captura);
	stringstream addr;

	if(pos != -1){  //Existe o registro
		int size = captura.getSize();
		addr << size << "*" << LED->getLED() << "@";		
		io->writeAtPos(pos,addr.str());
		LED->setLED(pos);
		return true;
	}		

	return false;
}
Ejemplo n.º 12
0
int main(){
    int casos,k,n;
    scanf("%d",&casos);
    for(int i = 1; i <= casos; i++){
        Lista *l = cria_lista();
        scanf("%d",&n);
        insere_vitima(l,n);
        scanf("%d",&k);
        while(l->qtd != 1){
            busca(l,k);
        }
        printf("Case %d: %d\n",i,l->head->num);
        }
    return 0;
}
//Retirar lista
Elemento* lst2_retira(Elemento* lst, int val)
{
	Elemento* p = busca(lst, val);
	if (p == NULL)
		return lst;/* não achou o elemento: retorna lista inalterada */
	/* retira elemento do encadeamento */
	if (lst == p) /* testa se é o primeiro elemento */
		lst = p->prox;
	else
		p->ant->prox = p->prox;
	if (p->prox != NULL) /* testa se é o último elemento */
		p->prox->ant = p->ant;
	free(p);
	return lst;
}
void le_dados(int flag){    // flag = 2 ---> nome e sexo / flag <> 2 ---> somente nome
     printf("\n\nEntre com o primeiro nome: ");
     fflush(stdin);
     gets(nome);
     strupr(nome);
     if (flag == 2)
       if ( busca(root,nome) != NULL ){
         printf ( "\nE R R O  --> %s ja consta na arvore! \n\n",nome );
         strcpy(nome,"");  
         system("pause");}
       else{         
         printf("\nQual o sexo de %s: ",nome);
         fflush(stdin);
         scanf ( "%s", &sexo ); }      
}
Ejemplo n.º 15
0
void retira_aresta(TGrafo *g, char *id1, char *id2){
        TGrafo *p = busca(g,id1);
        if(!p) return;
        TViz *viz = p->prim, *ant = NULL;
        while((viz) && (strcmp(viz->info, id2) != 0)){
            ant = viz;
            viz = viz->prox_viz;
        }
        if(!viz)return;
        if(!ant)
            p->prim = p->prim->prox_viz;
        else
            ant->prox_viz = viz->prox_viz;
        free(viz);
}
void menu(no *raiz){
	int j = 1;
	int n, i;
	printf("Agora que voce ja selecionou os elementos da arvore,\nselecione o que deseja fazer: ");
	while(j!=0){
		printf("\n\n1 : Imprime a arvore em ordem\n2 : Imprime a arvore em preordem\n3 : Imprime a arvore em posordem\n");
		printf("4 : Imprime em Labelled Bracketing\n5 : Buscar um numero\n6 : Remover um numero\n7 : Inserir um numero\n");
		printf("8 : Sair\n");
		scanf("%d", &i);
		switch(i){  //para cada número que o usuário entrar o programa realizará um comando diferente
			case 1:
				ordem(raiz);
			break;
			case 2:
				preordem(raiz);
			break;
			case 3:
				posordem(raiz);
			break;
			case 4:
				lbracketing(raiz);
			break;
			case 5:
				printf("\nEscreva o elemento que deseja buscar: ");
				scanf("%d", &n);
				busca(&raiz, n);
			break;
			case 6:
				printf("\nEscreva o elemento que deseja remover, escreva um que esta na arvore! :");	
				scanf("%d", &n);
				remover(&raiz, n);
			break;
			case 7:
				printf("Digite o elemento que deseja inserir, digite um que nao esteja na arvore! :");
				scanf("%d", &n);
				inserir(&raiz, n);
			break;
			case 8:
				j=0;
			break;	
			default	:
				printf("Insira um valor válido!\n");
			break;		
								
		}
	}
	return;
}
Ejemplo n.º 17
0
int main (){
    char t[MAXS]; char texto[MAXT];
    int N;
    scanf("%d", &N);
    for (int i = 0; i < MAX; i++) indice[i].clear();
    cnt = 1;
    memset (sig, 0, sizeof (sig));
    for (int i = 0; i < N; i++){
        scanf("%s", t);
        add (t, i);
    }
    aho();
    scanf("%s", texto);
    busca (texto);
    return 0;
}
Ejemplo n.º 18
0
Lista* retira (Lista* l, int v) {

  Lista* p = busca(l,v);
    if (p == NULL)
    return l; /* não achou o elemento: retorna lista inalterada */
 /* retira elemento do encadeamento */
  if (l == p)
    l = p->proximo;
  else
    p->anterior->proximo = p->proximo;

  if (p->proximo != NULL)
    p->proximo->anterior = p->anterior;
    free(p);
    return l;
}
Ejemplo n.º 19
0
int main(){
    tree* arv=NULL;
    int a=4,x;
    x = inserir(a,&arv);
    x=inserir(5,&arv);
    x=inserir(3,&arv);
    remover(3,arv);
    printf("R = %i\n",arv->id);
    printf("Busca = %i\n",busca(a,arv));
    printf("RD = %i\n",arv->rigth->id);
    printf("RE = %i\n",arv->left->id);
    free(arv);
     system("pause");
    return 0;
    
}
Ejemplo n.º 20
0
/* Insere um novo nó */
void insereNo(PPNo raiz,int chave) {
	PNo novo, pai;
	
	novo = novoNo(chave); /* aloca memória para o novo nó */
	pai = busca(*raiz,chave,NULL); /* busca endereço do pai do novo nó */
	
	if(pai) { /* se o pai existe, adiciona novo nó como filho dele */
		if(pai->chave == chave) { /* se a chave a ser inserida ja existe, mostra aviso na tela */
			gotoxy(1,1);
			printf("Chave ja existe!\n");
		}else {
			if(chave > pai->chave) pai->dir = novo;
			else pai->esq = novo;
		}
	}
	balanceamento(raiz); /* recalcula balanceamento da arvore */
}
Ejemplo n.º 21
0
/*FUNÇÃO AUXILIAR: usada para calcular a relação estatística*/
void calcula(Vizinhos* a,int f_a,  Words* aux)
{
    int f_b, f_ab;
    float moda=0;

    if(a!=NULL)
    {
        calcula(a->prox,f_a,aux);

        f_ab = a->freq_ab;
        f_b = busca(aux,a->id)->freq;
        moda= f_ab/(sqrt(f_a*f_b));
        a->moda = moda;

    }

}
Ejemplo n.º 22
0
// ----------------------------------------- IdentificadoresVisibles::inserta()
bool IdentificadoresVisibles::inserta(const std::string &x, bool visibilidad)
/**
	Acepta un nombre de id y su visibilidad,
	de manera que true es público y false privado.

	Se implementa con un caracter precediendo a la cadena,
		0 privado
		1 público
*/
{
	bool toret = busca( x );

	if ( !toret ) {
		Identificadores::inserta( ( visibilidad ? '1' : '0' ) + x );
	}

	return toret;
}
Ejemplo n.º 23
0
int main()
{
    int vetor[10] = {8,4,9,6,3,1,2,0,5,7};
    int vetor_ord[10] = {0,1,2,3,4,5,6,7,8,9};
    printf("%d %d %d %d",busca(N,vetor,4),busca_ord(N,vetor_ord,7),busca_bin(N,vetor_ord,4),busca_bin_rec(N,vetor_ord,6));


    // Busca com bsearch da propria biblioteca do C
    int* p;
    int val = 7;
    p = (int*)bsearch(&val,vetor_ord,N,sizeof(int),comp_int);

    if (p == NULL)
        printf("\nElemento nao encontrado.\n");
    else
        printf("\nElemento encontrado no indice: %d\n",p-vetor_ord);

    return 0;
}
Ejemplo n.º 24
0
void busca(int v) {
        int i, aux, min = low[v] = pre[v] = cont++;
        empilha(v);
        for (i = 0; i < nviz[v]; i++) {
                aux = grafo[v][i];
                if (pre[aux] == -1)
                        busca(aux);
                if (low[aux] < min)
                        min = low[aux];
        }
        if (min < low[v]) {
                low[v] = min;
                return;
        }
        do {
                id[i = desempilha()] = numcomp;
                low[i] = n;
        } while (i != v);
        numcomp++;
}
Ejemplo n.º 25
0
int main(){

    int* A;
    int n;
    int i;

    scanf("%d", &n);

    A = malloc(sizeof(int) * n);

    for(i = 0; i < n; i++){
        scanf("%d", &(A[i]));
    }

    scanf("%d", &i);

    printf("Busca binaria: %d\n", busca(A, 0, n - 1, i));

    return 0;
}
Ejemplo n.º 26
0
main(){
    int vet[TAM];
    int var;
    int chave;
    int i,j;
    int vetor_busca[REP];
    int vetor_cria[REP];
    int vetor_ord[REP];
    srand(time(NULL));

    for(j=0; j<REP; j++){
        for(i=0; i<TAM; i++){ //preenchendo vetor;
            var = rand()%TAM;
            cont_cria++;
            vet[i] = var;
        }
        ord_cresc(vet);
        chave = rand()%TAM; //gera chave randomico;
        busca(vet, chave); //busca;
        vetor_busca[j] = cont_busca;
        vetor_cria[j] = cont_cria;
        vetor_ord[j] = cont_ord;
        cont_busca = 0;
        cont_cria = 0;
        cont_ord = 0;

    }
    printf("N de Op. de INSERCAO:");
    for(i=0; i<REP; i++){
        printf("\n%d", vetor_cria[i]);
    }

    printf("\n\nN de Op. de ORDENACAO:");
    for(i=0; i<REP; i++){
        printf("\n%d", vetor_ord[i]);
    }
    printf("\n\nN de Op. de BUSCA:");
    for(i=0; i<REP; i++){
        printf("\n%d", vetor_busca[i]);
    }
}
Ejemplo n.º 27
0
void main() {
	int n;
	char *texto;
	char car;
	struct info resultado;

	printf("Ingrese el texto\n\n");
	texto = carga(&n);

	printf("Ingrese un caracter\n\n");
	scanf("%c", &car);

	resultado = busca(texto, n, car);

	if (resultado.text != NULL){
		printf("El texto modificado queda: \n\n%s", resultado.text);
		printf("La longitud del texto modificado es: \n%i", resultado.longitud);
	}
	else
		printf("El caracter ingresado no estaba en el texto");
}
Ejemplo n.º 28
0
bool conexo(){

	for(int l = 0; l < MAX_ALFA; l++){
		if(graus[l] > 0){
			visitados[l] = 1;
			busca(l);
			break;
		}
	}

	int cont = 0;
	for (int l = 0; l < MAX_ALFA; l++)
	{
		if(visitados[l] == 1)
			cont++;
	}

	if(cont < quant_vertices)
		return false;
	return true;
}
Ejemplo n.º 29
0
void busca(const char *diretorio, const char *arquivo, const char *palavra, int *carqs, int *cpastas)
{
	DIR *pasta; /* ponteiro para a pasta */
	struct dirent *dir;
	char vai_para_frente[500], valor[500]; /* para ir a proxima pasta */
	
	strcpy(valor,diretorio);
		
	sprintf(valor,"%s\\",valor);
	
	pasta = opendir(valor);  /* busca nomes em diretório */
	
	if(pasta == NULL) { 
		printf(">>finalizou?!\n");
		return; /* ocorreu um erro fatal */
	}
	
	dir = readdir(pasta); /* ler nome e sair varrendo */
	while(dir != NULL){		
		if(!(pasta->dd_dta.attrib & _A_SUBDIR))
		{/* verifica se é subdiretorio */
			sprintf(vai_para_frente,"%s\\%s",valor,pasta->dd_dta.name);
			(*carqs)++;
			printf("Comparacoringa: %d\n",comparaCoringa(arquivo,pasta->dd_dta.name));
			/*if(!strcmp(arquivo,pasta->dd_dta.name)) {
				printf("Arquivo: %s, encontrado em %s\n",pasta->dd_dta.name,vai_para_frente);
				/* mostrar o nome do arquivo
			}*/			
		}
		else if(!((!strcmp(pasta->dd_dta.name,".")) || (!strcmp(pasta->dd_dta.name,".."))))
		{
			sprintf(vai_para_frente,"%s\\%s",valor,pasta->dd_dta.name);
			(*cpastas)++;
			busca(vai_para_frente,arquivo,palavra,carqs,cpastas);
		}
		dir = readdir(pasta); /* ler nome e sair varrendo */
	}
	closedir(pasta);
	return;
}
Ejemplo n.º 30
0
int main(int argc, char** argv) {
    Aluno **vetor;
    int n,i=0,indice;
    char nome[81];
    printf("Tamanho do vetor: ");
    scanf("%d",&n);
    vetor = (int **)malloc(n *sizeof(Aluno*));
   for (i=0; i<n; i++)
       vetor[i] = (Aluno*) malloc(sizeof(Aluno));
   for (i=0; i<n; i++) {
    printf("\nAluno %d:\n",i+1); 
    inserir_dados(vetor,i);
   }
    ordenar(vetor,n);
    getchar();
    printf("Digite o nome do aluno a ser buscado: ");
    gets(nome);
    indice = busca (n,vetor, nome);
    if (indice == -1) printf("%d Nao encontrado ",indice);
    else printf("O indice do nome e %d ",indice);
    return (EXIT_SUCCESS);
}