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;
}
bool excluir(TIPOCHAVE ch, LISTA *L){
	PONT aux, ant;
	aux = buscaSequencial(ch, *L, &ant); // Busca o valor para excluir, o ant é passado como endereço de memória, assim a função busca altera ele, guardando o valor anterior
	if( aux == NULL ) return false; // Não encontrou
	ant->prox = aux->prox; // Nó anterior aponta para o próximo, no caso o próximo que o nó a ser excluído está apontando
	free(aux); // Libera a memória
	return true;
}
Ejemplo n.º 3
0
int main(int argc, char* argv[]) {

	if (argc < 4) {
		printf("Numero de argumentos insuficiente\n");
		printf("Uso: ./prog <tam_vetor> <chave> <tipo_busca>\n");
		printf("\t<tipo> = 1 sequencial, 2 binaria\n\n");
		return 0;
	}	

	int n = atoi(argv[1]); // tamanho do vetor
	int chave = atoi(argv[2]); // numero a buscar nos dados
	int op = atoi(argv[3]);

	int * vet = geraVetorAleatorio(n);
	printf("exemplos: %d, %d\n", vet[n-2], vet[n-1]);

	long int pos;

	clock_t c1, c2;
	
	c1 = clock();

	if (op == 1) {
		fprintf(stdout,"Realizando busca...\n");
		fflush(stdout);
		pos = buscaSequencial(vet, n, chave);
	} else if (op == 2) {
		fprintf(stdout,"Ordenando...\n");
		fflush(stdout);
		// bubbleSort(vet, n); // nao usar - dica do Obama
		insertionSort(vet, n);
		fprintf(stdout,"Realizando busca...\n");
		fflush(stdout);
		pos = buscaBinaria(vet, 0, n-1, chave);
	}

	c2 = clock();
	double time_diff = (c2-c1)/((double) CLOCKS_PER_SEC);
	printf("Tempo de execucao: %.4lf\n", time_diff);

	if (pos == -1) {
		printf("Valor nao encontrado\n\n");
	} else {
		printf("Valor encontrado na posicao: %ld\n\n", pos);
	}

	free(vet);


	return 0;
}
Ejemplo n.º 4
0
void testesBuscas() {

    int dados[] = { 1, 3, 5, 6, 7, 9, 10, 12, 14, 20 };
    int i;

    printf( "Busca Sequencial ou Linear:\n" );
    for ( i = 0; i < 10; i++ ) {
        printf( "%d %s\n", i, buscaSequencial( i, dados, TAMANHO_ARRAY_BUSCA ) ? "***" : "" );
    }

    printf( "\nBusca Binaria:\n" );
    for ( i = 0; i < 10; i++ ) {
        printf( "%d %s\n", i, buscaBinaria( i, dados, TAMANHO_ARRAY_BUSCA ) ? "***" : "" );
    }

}
Ejemplo n.º 5
0
int main(int argc, char* argv[]) {

	if (argc < 7) {
		printf("Numero de argumentos insuficiente\n");
		printf("Uso: ./prog <tam_vetor> <chave> <tipo_busca>\n");
		printf("\t<tipo> = 1 sequencial, 2 binaria\n\n");
		printf("\t<sort> = 1 bubble, 2 insertion\n");
		printf("\t<tipo_vetor> = 1 aleatorio, 2 sequencial\n");
		printf("\t<tipo_op> = 1 leitura, 2 escrita\n");
		return 0;
	}	

	int n = atoi(argv[1]); // tamanho do vetor
	int chave = atoi(argv[2]); // numero a buscar nos dados
	int op = atoi(argv[3]);
	int sort = atoi(argv[4]);
	int tipovet = atoi(argv[5]);
	int rw = atoi(argv[6]);

	int * vet;
	if(tipovet == 1)
		vet = (int *)geraVetorAleatorio(n);
	else if (tipovet == 2)
		vet = (int *)geraVetorSequencial(n);
	printf("exemplos: %d, %d\n", vet[n-2], vet[n-1]);

	long int pos;

	clock_t c1;

	if (op == 1) {
		fprintf(stdout,"Realizando busca...\n");
		fflush(stdout);
		c1 = clock();
		pos = buscaSequencial(vet, n, chave);
		printf("busca: %.6fs\n", (float)(clock()-c1)/CLOCKS_PER_SEC);
	} else if (op == 2) {
		fprintf(stdout,"Ordenando...\n");
		fflush(stdout);
		c1 = clock();
		if(sort == 1)
			bubbleSort(vet, n); // nao usar - dica do Obama
		else if(sort == 2)
			insertionSort(vet, n);
		printf("sort: %.6fs\n", (float)(clock()-c1)/CLOCKS_PER_SEC);
		fprintf(stdout,"Realizando busca...\n");
		fflush(stdout);
		c1 = clock();
		pos = buscaBinaria(vet, 0, n-1, chave);
		printf("busca: %.6fs\n", (float)(clock()-c1)/CLOCKS_PER_SEC);
	}


	if (pos == -1) {
		printf("Valor nao encontrado\n\n");
	} else {
		printf("Valor encontrado na posicao: %ld\n\n", pos);
	}

	free(vet);


	return 0;
}