int main() {
	List lista; 
	BSTree pasados[ HASHSIZE ];

	lista = NULL;
  int x;
  for(x=0; x<HASHSIZE; x++) {
    pasados[x] = NULL;
  }
	printf("Ingrese una lista de enteros separados por coma:");

	char str[2000] = "";
	scanf("%s", str);
	lista = crear_lista(lista, str);
	printf("La lista es: \n");
	mostrar_lista(lista);

	printf("\n\n");

	List rList = lista;

	printf("\n\nSacando Duplicados Queda: ");
	sacar_duplicados(lista, pasados);
	mostrar_lista(lista);
	
	printf("\n\n");


}
Esempio n. 2
0
int main(int argc, char *argv[]) {
	int op;
	int generada_lista = 0;
	Pila pila_docentes = NULL;
	Cola cola_estudiantes = (Cola)malloc(sizeof(TCola));
	cola_estudiantes->primero = NULL;
	cola_estudiantes->ultimo = NULL;
	Lista lista = NULL;

	do{
		printf("###### OLIMPIADAS VENEZOLANAS DE INFORMATICA #####\n");
		printf("1) Registrar docente\n");
		printf("2) Registrar estudiante\n");
		printf("3) Generar listado\n");
		printf("4) Mostrar listado de docentes\n");
		printf("5) Mostrar listado de estudiantes\n");
		printf("6) Mostrar listado completo\n");
		printf("7) Salir\n");
		scanf("%d",&op);

		switch(op){
			case 1:
				anadir_pila(&pila_docentes,registrar_persona(DOCENTE));
			break;
			case 2:
                anadir_cola(&cola_estudiantes,registrar_persona(ESTUDIANTE));
            break;
			case 3:
				llenar_lista(&pila_docentes,&cola_estudiantes,&lista);
				generada_lista = 1;
			break;
			case 4:
                if(lista == NULL){
                    printf("No hay personas registradas\n");
                }
                else{
                    mostrar_lista(&lista,DOCENTE);
                }
			break;
			case 5:
                if(lista == NULL){
                    printf("No hay personas registradas\n");
                }
                else{
                    mostrar_lista(&lista,ESTUDIANTE);
                }
			break;
			case 6:
                (generada_lista)?(mostrar_lista(&lista,TODO)):(printf("No has seleccionado la opcion 3 del menu\n"));
			break;
			case 7:
				exit(EXIT_SUCCESS);
			break;
		}

	}while(1);

	return 0;
}
Esempio n. 3
0
int main(void){
	T_LISTA mi_lista;
	mi_lista=crear_lista();
	mostrar_lista(mi_lista);
	printf("\n\n---------------------\n\n");
	ordena_lista(&mi_lista);
	mostrar_lista(mi_lista);
	return 0;
}
Esempio n. 4
0
/*
* Arquivo de testes, aqui pode ser testadas todas
* as funções implementadas da linkedList.
*/
int main() {
  linkedList minha_lista = criar_lista();
  adicionar_no(minha_lista, 6);
  adicionar_no(minha_lista, 3);
  adicionar_no(minha_lista, 5);

  mostrar_lista(minha_lista);
  printf("O tamanho da lista é: %d\n", minha_lista->tamanho);

  return 0;
}
Esempio n. 5
0
main(){

    // Apuntador al primer elemento de la lista
    Nodo* lista = NULL;

    // Pruebas para función insertar_cola
    lista = insertar_cola(lista, 7);
    lista = insertar_cola(lista, 4);
    lista = insertar_cola(lista, 12);

    // Pruebas para función insertar_tope
    lista = insertar_tope(lista, 2);
    lista = insertar_tope(lista, 5);
    lista = insertar_tope(lista, 3);

    // Pruebas para función insrtar_tope_m.
    // Nótese que se tiene una llamada más limpia e intuitiva que la de
    // insetar_tope.
    insertar_tope_m( &lista, 6);
    insertar_tope_m( &lista, 10);
    insertar_tope_m( &lista, 22);

    // Se mustra la lista creada.
    mostrar_lista(lista);

    printf("La longitud de la lista es: %d\n\n" , longitud(lista));

    borrar_nodo(&lista, 2);
    borrar_nodo(&lista, 0);

    mostrar_lista(lista);

    printf("La longitud de la lista es: %d\n\n" , longitud(lista));

    // Liberación de la lista.
    liberar_lista(&lista);

    // Si le la lista fue liberada no debe mostrarse elemento alguno.
    mostrar_lista(lista);

}
Esempio n. 6
0
player jogadores(player lista)
{
	int op, total;


	do{
		total=conta_jogador(lista);
	titulo();
	
	printf("\n\tMenu principal\n\t  >>Jogadores\n\n");
	
	printf("\n\t1 - Inserir novo jogador");
	printf("\t\t2 - Listar jogadores");
	printf("\n\n\t3 - Eliminar jogador");
	printf("\t\t\t4 - Recuperar Password\n");
	printf("\n\t5 - Menu Principal\n");
	printf("\n\n\t----------------------------------------------------------------\n");
	printf("\n\t\tEstatisticas Globais");
	printf("\n");
	printf("\n\tNumero total de jogadores registados: %d\n\n", total);

	

	do{
		printf("\nEscolha uma opcao: ");
		scanf("%d", &op);
	}while(op<1 || op>5);
	
	switch(op){
		case 1:	system("cls");
				lista=inserir_player(lista);
				break;
		case 2: system("cls");
				mostrar_lista(lista);
				break; 
		case 3: system("cls");
				lista= eliminar_player(lista);
				break;
		case 4: system("cls");
				recoverPW(lista);
				break;
		} 

	}while(op!=5); 


	return lista;

}
Esempio n. 7
0
int main() {
    int opcion;

    primero = (struct Agenda *) NULL;
    ultimo = (struct Agenda *) NULL;
    do {
        mostrar_menu();
        scanf("%d", &opcion);
        switch (opcion) {
            case 1: anadir_elemento();
                break;
            case 2: borrar_elemento();
                break;
            case 3: mostrar_lista();
                break;
            case 4: exit(0);
                break;
            default: printf("Opcion no valida\n");
                break;
        }
     } while (opcion!='4');
    return 0;
}
Esempio n. 8
0
void mostrar_todo_factorizado( int arr[MAX_ALPHABET_SIZE][MAX_STRING_SIZE][MAX_ALPHABET_SIZE] ) {
	int k, n, z;
	List factores;

	printf("<h2>Resultados factorizados</h2>");
	for(k=0; k<MAX_ALPHABET_SIZE; k++) {
		printf("<h3>Alfabeto de tamaño: %d</h3>", k);
		printf("<table>");
		for(n=0; n<MAX_STRING_SIZE; n++) {
			printf("<tr>");
			printf("<td style='width: 200px; font-weight: bold;'>Cadena de tamaño: %d</td>", (n+1));
			for(z=0; z<MAX_ALPHABET_SIZE; z++) {
				printf("<td>");
				factores = factorizar( arr[ k ][ n ][ z ]);
				mostrar_lista(factores);
				printf("</td>");
				liberar_lista(factores);
			}
			printf("</tr>");	
		}
		printf("</table>");
	}

}
Esempio n. 9
0
int main(int argc, char * argv[]) {

	int s, r;
	struct sockaddr_in dest;
	char buffer[MAXBUF];
	struct Mensaje mensaje;

	if (argc < 3) {
		puts("Usage ./cliente [nombre] [pos1] ...");
		return EXIT_FAILURE;
	}

	signal(SIGKILL, handler_seniales);
	signal(SIGTERM, handler_seniales);

	cantidad_barcos_hundidos = 0;

	// Validacion de las posiciones de la matriz
	cantidad_barcos = argc - 2; // Le resto los primeros 2 argumentos: ejecutable y nombre de jugador

	//char * posiciones[cantidad_barcos];

	if (validarPosiciones(argv, posiciones_barcos) == -1) {
		return EXIT_FAILURE;
	}

	//posiciones_barcos = posiciones;

	// Leo ip y puerto del servidor del archivo de configuracion
	struct Conexion conexion = leerConfiguracion();

	if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
		perror("Socket");
		return EXIT_FAILURE;
	}

	/*---Initialize server address/port struct---*/
	bzero(&dest, sizeof(dest));
	dest.sin_family = AF_INET;
	dest.sin_port = htons(conexion.puerto);
	if (inet_aton(conexion.ip, &dest.sin_addr.s_addr) == 0) {
		perror(conexion.ip);
		return EXIT_FAILURE;
	}

	/*---Connect to server---*/
	if (connect(sockfd, &dest, sizeof(dest)) != 0) {
		perror("Connect ");
		return EXIT_FAILURE;
	}

	bzero(buffer, MAXBUF);

	// Enviar nombre jugador
	mensaje.tipo = Registra_Nombre;
	strcpy(mensaje.contenido, argv[1]);

	sleep(2);

	s = send(sockfd, &mensaje, sizeof(mensaje), 0);

	if (s == -1) {
		perror("Error al enviar el nombre del jugador");
		return EXIT_FAILURE;
	}

	// Recibo la estructura del jugador registrado.
	r = recv(sockfd, buffer, sizeof(struct MensajeNIPC), 0);

	memcpy(&jugador, buffer + sizeof(TIPO_MENSAJE) + sizeof(int),
			sizeof(struct Jugador));

	printf("Se ha registrado en el servidor como el jugador %s.\n",
			jugador.nombre);

	if (mostrar_lista() == -1) {
		return EXIT_FAILURE;
	}

	desconectar();

	liberar_recursos();
	return EXIT_SUCCESS;
}
Esempio n. 10
0
int main(int argc, char **argv)
{
	int m = 0, n = 0; // m para filas, n para columnas
	char ** tablero; // Tablero de juego
	char ** tableroCopia; // Tablero de Copia
	char ** auxiliar; // Apuntador Auxiliar
	int i = 0, j = 0, k = 0; // Variables auxiliares
	int conejosIniciales = 0; // Se almacenaran los conejos ingresados por el usuario
	int puntaje = 0, nivel = 0, conejosVivos = 0; // Estado del juego
	float trampolines = 0; // Se llevara la cantidad de trampolines
	int coordZF = 0, coordZC = 0;
	int siguienteMovimiento = 0;
	Bool gameOver = False;
	Bool movValido = False;
	FILE *fp = NULL;
	Bool recuperarPartida = False;
	ItemRanking ranking[RANKING_NUM];
	ItemRanking paso;
	TipoNodoNombre *lista_partidas;
	int lista_partidas_num;
	char partida_ruta[50];
	char partida_nombre[NODO_NOMBRE_MAX_LENGTH + 1];

	// Inicializo la lista
	lista_partidas = lista_vacia();

	// Cargo el Ranking
	inicializarRanking(ranking, RANKING_NUM);
	cargarRanking(ranking, RANKING_NUM);

	// Doy la bienvenida
	clearScr();
	printZanahoria();
	pausa();
	clearScr();

	// Instrucciones del Juego
	if(!preguntayn("Conoces las reglas del juego?")){
		mostrarAyuda();
	}

	// Lista de Partidas
	lista_partidas = generar_lista_partidas();

	if(lista_partidas != NULL){
		clearScr();
		recuperarPartida = False;
		recuperarPartida = (Bool)preguntayn("Existen partidas guardadas, quieres cargar una?");

		if(recuperarPartida)
		{
			lista_partidas_num = longitud_lista(lista_partidas);
			clearScr();
			printf("Se encontraron %i partida(s):\n\n", lista_partidas_num);
			mostrar_lista(lista_partidas);
			do{
				i = 0;
				printf("\nSelecciona una partida: ");
				clearStdin();
				scanf("%i", &i);
				if(i < 1 || i > lista_partidas_num) printMsjError("Partida no valida!");
			}while(i < 1 || i > lista_partidas_num);
			sprintf(partida_ruta, "%s%s%i%s", FOLDER_PARTIDAS, FILE_PARTIDA_PREFIX, i - 1, FILE_PARTIDA_EXT);
			tablero = cargarPartida(partida_ruta, &m, &n, &conejosIniciales, &conejosVivos, &nivel, &puntaje, &trampolines);
			if(tablero == NULL){
				printMsjError("Error: No se logro conseguir memoria para el tablero!");
				return 1;
			}
		}
	}

	// // Verifico si existe una partida guardada
	// fp = fopen(FILE_PARTIDA, "r");

	// // Existe una partida guardada
	// if(fp != NULL){
		
	// 	// Cierro el fichero para poder abrirlo desde la funcion
	// 	fclose(fp);
	// 	fp = NULL;
		
	// 	clearScr();
	// 	recuperarPartida = False;
	// 	recuperarPartida = (Bool)preguntayn("Existe una partida guardada, desea cargarla?");

	// 	// Si la respuesta fue afirmativa recupero el estado del juego
	// 	if(recuperarPartida)
	// 		tablero = cargarPartida(FILE_PARTIDA, &m, &n, &conejosIniciales, &conejosVivos, &nivel, &puntaje);

	// }

	if(!recuperarPartida){

		// Preguntamos el tamano del tablero
		clearScr();
		pedirDimensionTablero(&m, &n);

		// Preguntamos los conejos iniciales
		clearScr();
		pedirConejosIniciales(&m, &n, &conejosIniciales);
		conejosVivos = conejosIniciales;
		
		// Reservo memoria para el tablero
		tablero = (char **)pedirMemoriaMatriz(m, n, 'c');
		if(tablero == NULL)
		{
			printMsjError("Error: No se logro conseguir memoria para el tablero!");
			return 1;
		}
		tablero_ini(tablero, m , n);

		// Ubico la zanahoria
		ubicarZanahoriaInicial(tablero, m, n);

		// Ubico los conejos iniciales
		ubicarConejosIniciales(tablero, m, n, conejosVivos);


	}

	// Reservo la memoria para una copia del tablero
	tableroCopia = (char **)pedirMemoriaMatriz(m, n, 'c');
	if(tableroCopia == NULL){
		printMsjError("Error: No se logro conseguir memoria para el tablero!");
		return 1;
	}
	// Doy valores iniciales al tablero
	tablero_ini(tableroCopia, m, n);

	// Comienza el Ciclo de Juego
	for(;;){
		clearScr();
		// Muestro el tablero
		tablero_pretty_view(tablero, m , n);
		// Muestro el estado del juego
		//println("Conejos Vivos: %i - Nivel: %i - Puntaje: %i", conejosVivos, nivel + 1, puntaje);
		printf("%sConejos Vivos: %i%s", COLOR_ROJO_CLARO_S, conejosVivos, ESTILO_NORMAL_S);
		printf(" - %sNivel: %i%s", COLOR_VERDE_CLARO_S, nivel + 1, ESTILO_NORMAL_S);
		printf(" - %sPuntaje: %i%s\n", COLOR_MARRON_CLARO_S, puntaje, ESTILO_NORMAL_S);
		// Pido movimiento al usuario
		siguienteMovimiento = pedirSiguienteMovimiento();
		// Establesco el movimiento como no valido hasta que se demuestre lo contrario
		movValido = False;
		// Realizo el siguiente movimiento si es posible
		if(siguienteMovimiento >= 1 && siguienteMovimiento <= 9){
			// Verificamos si el movimiento ingresado se puede realizar
			// Si es asi movemos la zanahoria
			movValido = ejecutarMovimientoZanahoria(siguienteMovimiento, tablero, m, n, nivel) ? True : False;
			if(!movValido){
				printMsjErrorPausa("Movimiento no valido!");
			}else{
				gameOver = (ejecutarMovimientoConejos(tablero, tableroCopia, m, n, &conejosVivos, &puntaje) == 0) ? True : False;
			}
		}else if(siguienteMovimiento == MOVE_TRANSPORT){
			// Ejecutamos la teletransportacion y movemos a los conejos
			movValido = True;
			ejecutarTeletransportacion(tablero, m , n);
			gameOver = (ejecutarMovimientoConejos(tablero, tableroCopia, m, n, &conejosVivos, &puntaje) == 0) ? True : False;
		}else if(siguienteMovimiento == ACTION_SAVE){
			lista_partidas_num = longitud_lista(lista_partidas);
			clearScr();
			if(lista_partidas_num) printf("Puedes guardar unar partida nueva o sobreescribir una existente.\n\n");
			if(lista_partidas_num && preguntayn("Deseas sobreescribir una partida?")){
				clearScr();
				printf("Hay %i Partida(s) Disponibles:\n\n", lista_partidas_num);
				mostrar_lista(lista_partidas);
				do{
					i = 0;
					printf("\nIngresa el numero de la que deseas sobreescribir: ");
					clearStdin();
					scanf("%i", &i);
					if(i < 1 || i > lista_partidas_num) printMsjError("Partida no valida!");
				}while(i < 1 || i > lista_partidas_num);
				// Sobreescribir una partida
				sprintf(partida_ruta, "%s%s%i%s", FOLDER_PARTIDAS, FILE_PARTIDA_PREFIX, i - 1, FILE_PARTIDA_EXT);
				pedirCadena("\nBreve descripcion partida", partida_nombre, NODO_NOMBRE_MAX_LENGTH);
				if(guardarPartida(partida_ruta, tablero, m, n, partida_nombre, conejosIniciales, conejosVivos, nivel, puntaje, trampolines)){
					modificar_valor_posicion(lista_partidas, i - 1, partida_nombre);
					printMsjOkPausa("Partida Guardada!");
				}
			}else{
				// Guardar Partida Nueva
				sprintf(partida_ruta, "%s%s%i%s", FOLDER_PARTIDAS, FILE_PARTIDA_PREFIX, lista_partidas_num, FILE_PARTIDA_EXT);
				clearScr();
				pedirCadena("Breve descripcion partida", partida_nombre, NODO_NOMBRE_MAX_LENGTH);
				if(guardarPartida(partida_ruta, tablero, m, n, partida_nombre, conejosIniciales, conejosVivos, nivel, puntaje, trampolines)){
					lista_partidas = insertar_por_cola(lista_partidas, partida_nombre);
					printMsjOkPausa("Partida Guardada!");
				}
			}
			// // Verficamos si ya existe una partida guardada
			// fp = fopen(FILE_PARTIDA, "r");
			// if(fp != NULL){
			// 	fclose(fp);
			// 	fp = NULL;
			// 	// Preguntamos si desea sobreescribir la partida existe
			// 	if(preguntayn("Ya existe una partida guardada, desea sobreescribirla?")){
			// 		if(guardarPartida(FILE_PARTIDA, tablero, m, n, conejosIniciales, conejosVivos, nivel, puntaje))
			// 			printMsjOkPausa("Partida Guardada!");
			// 	}
			// }else{
			// 	if(guardarPartida(FILE_PARTIDA, tablero, m, n, conejosIniciales, conejosVivos, nivel, puntaje))
			// 		printMsjOkPausa("Partida Guardada!");
			// }
		}else if(siguienteMovimiento == ACTION_QUIT){
			clearScr();
			//println("Gracias por jugar!");
			printGraciasPorJugar();
			break;
		}

		if(movValido){
			puntaje += PUNTAJE_MOV;
			// Intercambio los tableros
			auxiliar = tablero;
			tablero = tableroCopia;
			tableroCopia = auxiliar;

			// Paso de Nivel
			if(conejosVivos == 0){
				// Inicializo el Tablero
				posicionZanahoria(tablero, m, n, &coordZF, &coordZC);
				tablero_ini(tablero, m , n);
				tablero[coordZF][coordZC] = ZANAHORIA;
				// Aumento el nivel en una unidad
				nivel++;
				// Aumento el puntaje
				puntaje += PUNTAJE_NIVEL;
				// Incremento los conejos
				conejosVivos = conejosIniciales + (redondeoEntero(conejosIniciales * TASA_AUMENTO_CONEJOS) * nivel);
				ubicarConejosIniciales(tablero, m , n, conejosVivos);
				// Ubico los Trampolines
				if(nivel >= NIVEL_TRAMPOLINES_START){
					trampolines += nivel == NIVEL_TRAMPOLINES_START ? TRAMPOLINES_INICIALES : trampolines * TASA_AUMENTO_TRAMPOLINES;
					ubicarTrampolines(tablero, m, n, (int)trampolines);
				}
			}
		}

		// Acciones en caso de Perder el Juego
		if(gameOver){
			clearScr();
			// tablero_view(tablero, m, n);
			printConejoGameOver();
			// Verificamos si puede entrar al ranking
			if(puntaje > ranking[0].puntaje){
				paso.puntaje = puntaje;
				pedirCadena("\nFelicidades has ingresado al ranking!!\n\nDate tu nombre", paso.nombre, MAX_SIZE_NAME);
				i = ingresarRanking(ranking, RANKING_NUM, &paso);
				clearScr();
				mostrarRankingDestacado(ranking, RANKING_NUM, i);
			}
			break;
		}
	} // for - ciclo de juego

	// Libero la memoria otorgada para el tablero
	liberarMemoriaMatriz((void **)tablero);
	liberarMemoriaMatriz((void **)tableroCopia);
	tablero = tableroCopia = NULL;

	// Guarda el Ranking en el disco
	guardarRanking(ranking, RANKING_NUM);

	return 0;
}
Esempio n. 11
0
int main(void){

    no_t *inicio, *cadastro; // cadastro será usado para verificar se um
                             // nome já existe com aquele cadastro
    char nome[20];
    short controle, op;

    inicio=NULL;
    cadastro=NULL;

    // Menu
    controle=1;
    while( controle) {
        printf("============== Menu ============\n");
        printf("0. Sair \n");
        printf("1. Inserir \n");
        printf("2. Mostrar Nomes\n");
        printf("3. Pesquisar por Nome \n");
        printf("4. Remover por Nome \n");
        printf("Opção: ");

        __fpurge(stdin);
        scanf("%hd", &op);

        switch(op){

            case 0: // Sair 
                controle = 0;
                break;

            case 1: // Inserir 

                inserir(&inicio, criar_no()); 
                continuar(&controle);
                system("clear");

                break;

            case 2: // Mostrar 
                if( inicio == NULL ){
                    printf("A lista está vazia.\n");
                    continuar(&controle);
                }
                
                else{
                    mostrar_lista(inicio);
                    continuar(&controle);
                }

                break;

            case 3: // Pesquisar 
                if( inicio == NULL ){
                    printf("A lista está vazia.\n");
                    continuar(&controle);
                }
                else{

                        printf("\nNome: ");
                        __fpurge(stdin);
                        fgets(nome,20,stdin);
                        nome[0] = toupper(nome[0]);

                        // procura se o nome já foi cadastrado
                        cadastro = pesquisar(inicio,nome);

                        if( cadastro == NULL ){
                            printf("Nome não cadastrado.\n");
                            continuar(&controle);
                        }
                        else{
                            // Mostrar dados
                            printf("Rua: %sNumero: %s", cadastro->rua, cadastro->numero);
                            printf("Cidade: %sEstado: %s", cadastro->cidade, cadastro->estado);
                            continuar(&controle);
                        }
                    }

                break;

            case 4: // Remover 
                if( inicio == NULL ){
                    printf("A lista está vazia.\n");
                    continuar(&controle);
                }
                else{
                    printf("Nome: ");
                    __fpurge(stdin); // limpa o buffer do teclado
                    fgets(nome,20,stdin);
                    nome[0]=toupper(nome[0]); 

                    if( remover(&inicio, nome) == true){
                        printf("Removido.\n");
                    }
                    else{
                        printf("Não está na lista.\n");
                    }
                    continuar(&controle);
                }
                break;

            default:
                printf("Erro, opção inválida.\n");
                __fpurge(stdin);
                continuar(&controle);
                break;

        }// end switch
    }// end while

	return 0;

}