Пример #1
0
int main ()
{
	struct nodo lista;
	int buscar;
	int valor = 1;
	inicializar(&lista);
	
	printf("Programa en el cual tendras que insertar numeros en lista \n");
	printf("y termina insertando un -1, en el cual de  la lista insertada \n");
	printf("tendras que borrar un numero de ella. \n\n");
	while(valor != -1){
	printf("Escriba un numero \n");
	
		scanf("%d", &valor);
		if(valor != -1)
		insertar_al_final(&lista,valor);
	}
	
	printf("escribe el numero a borrar de la siguiente lista\n");
	imprimir_lista(&lista);
	printf("\n");
	scanf("%d", &buscar);
	eliminar_nodo(&lista,buscar);
	imprimir_lista(&lista);
	borrar_lista(&lista);
	return 0;
}
int main()
{
    struct nodo cabecera;
    int valor_nuevo = 0;
    int valor_antes;
    int borrar;
    int nuevo, antes;
    inicializar(&cabecera);

    printf("Introduce los datos\nIntroduce -1 cuando finalices\n");
    while(valor_nuevo != -1){
            scanf("%d", &valor_nuevo);
            if(valor_nuevo != -1){
                insertar_al_final(&cabecera, valor_nuevo);
            }
    }
    imprimir_lista(&cabecera);

    printf("\nQue numero quieres borrar?\n");
    scanf("%d", &borrar);
    borrar_elemento(&cabecera, borrar);

    imprimir_lista(&cabecera);
    borrar_lista(&cabecera);

    return 0;
}
Пример #3
0
int main()
{
	struct nodo lista;
	int valor;
	int valor_antes;

	inicializar(&lista);
	printf("Programa en el cual tendras que insertar numeros en lista \n");
	printf("y termina cuando insertas un -1, y aparte insertaras un numero \n");
	printf("nuevo y podras insertarlo en el lugar que quieras de la lista. \n\n");
	while(valor != -1){
	printf("Escriba un numero \n");
	
		scanf("%d", &valor);
		if(valor != -1)
		insertar_al_final(&lista,valor);
	}
	printf("Escriba el nuevo numero a introducir\n");
	scanf("%d", &valor);
	printf("Despues de que numero de la lista quieres que este el numero nuevo\n");
	imprimir_lista(&lista);
	printf("\n");
	scanf("%d", &valor_antes);
	insertar_despues_de(&lista, valor, valor_antes);
	imprimir_lista(&lista);
	
	return 0;
}
int main()
{
	struct nodo lista;
	int valor;
	int valor_antes;

	inicializar(&lista);

	printf("Escriba un numero, al escribir -1 se terminará la lista\n");
	while(valor != -1){
		scanf("%d", &valor);
		if(valor != -1)
		insertar_al_final(&lista,valor);
	}
	printf("Escriba un numero\n");
	scanf("%d", &valor);
	printf("escribe el valor que estara antes del valor introducido\n");
	imprimir_lista(&lista);
	printf("\n");
	scanf("%d", &valor_antes);
	insertar_despues_de(&lista, valor, valor_antes);
	imprimir_lista(&lista);
	borrar_lista(&lista);
	return 0;
}
int main()
{
    struct nodo_doble cabecera;
    int valor_nuevo = 0;
    int valor_antes;
    inicializar(&cabecera);

    printf("Introduce los datos\nIntroduce -1 cuando finalices\n");
    while(valor_nuevo != -1){
            scanf("%d", &valor_nuevo);
            if(valor_nuevo != -1){
        insertar_al_final(&cabecera, valor_nuevo);
            }
    }
    imprimir_lista(&cabecera);
    printf("Dame el numero que quieres introducir\n");
    scanf("%d", &valor_nuevo);
    printf("Despues de que numero lo quieres introducir?\n");
    scanf("%d", &valor_antes);
    insertar_despues(&cabecera, valor_nuevo, valor_antes);
    imprimir_lista(&cabecera);
    borrar_lista(&cabecera);

    return 0;
}
Пример #6
0
int main()
{
    int opcion;
    int valor ;//  ingresar
    struct nodo *puntero;
    int  valor_antes;

     puntero = (struct nodo*)malloc(sizeof (struct nodo) *1);

      do
      {
        menu1();
        scanf("%d",&opcion);
        switch(opcion)
        {
           case 1:
              while(valor != -1)
              {
                    printf("\n ingresar los datos\n\t ");
                    scanf("%d",&valor);
                    insertar_al_final(puntero,valor);
              }
             break;

           case 2:
                    printf("ingresa otro numero");
                 scanf("%d",&valor);

                 printf("a partir de que numero lo quieres inserta (colocados en la lista)");
                   imprimir_lista(puntero);
                 scanf("%d", &valor_antes);

                 insertar_despues_de(puntero,valor, valor_antes);
           break;



            case 3:
                    printf("\n\n impresion de la lista \n\n");
                       imprimir_lista(puntero);
                        borrar_lista(puntero);


              break;

            case 4:
                      printf("\tsalir\n\n");
            break;



        }


      } while(opcion != 4);
  system("pause");
  return 0;
}
Пример #7
0
int main(){
	struct nodo * lista;
	lista = inicializar();
	agregar(lista);
	imprimir_lista(lista);
	seleccion(lista);
	imprimir_lista(lista);
	free(lista);
	return 0;
}
Пример #8
0
int main(){
	struct nodo *lista;
	int val;
	lista = inicializar();
	printf("ordenamiento burbuja en listas");
	while(1){
		printf("ingresa un dato \n ingresa -1 si no queires mas datos");
		scanf("%d",&val);
		if(val == -1)
			break;
		insertar_al_final(lista,val);
	}
	printf("antes de ordenar: ");
	imprimir_lista(lista);
	ordenar(lista);
	printf("despues de ordenado: ");
	imprimir_lista(lista);
	return 0;
}
Пример #9
0
int main ()
{
	struct nodo lista;
	int buscar;
	int valor = 1;
	inicializar(&lista);
	while(valor < 10){
		insertar_al_final(&lista,valor);
		valor++;
	}
	
	printf("escribe el numero a borrar de la siguiente lista\n");
	imprimir_lista(&lista);
	printf("\n");
	scanf("%d", &buscar);
	eliminar_nodo(&lista,buscar);
	imprimir_lista(&lista);
	borrar_lista(&lista);
	return 0;
}
Пример #10
0
int main()
{
    struct nodo cabecera;
    int valor = 0;
    inicializar_lista(&cabecera);

    printf("Introduce -1 para finalizar\n");
    printf("Dame los numeros\n");

    while(valor != -1){
        scanf("%d", &valor);
        if (valor != -1){
            introducir_al_final(&cabecera, valor);
        }
    }
    imprimir_lista(&cabecera);
    imprimir_el_primero(&cabecera);
    borrar_el_primero(&cabecera);
    imprimir_lista(&cabecera);
}
Пример #11
0
int main(){
	struct nodo *cabecera;
	int valor;
	cabecera = (struct nodo*) malloc(sizeof(struct nodo));
	inicializar(cabecera);
	printf("ingresa los datos, pulsa -1 para dejar de ingresar datos \n");
	while(1){
		printf("ingrese un numero un numero: ");
		scanf("%d",&valor);
		if(valor == -1)
			break;
		insertar_al_final(cabecera,valor);
	}
	imprimir_lista(cabecera);
	printf("ingrese el numero a eliminar eliminar ");
	scanf("%d",&valor);
	borrar_elemento(cabecera,valor);
	printf("eliminado \n");
	imprimir_lista(cabecera);
	borrar_lista(cabecera);
	return 0;
}
int main(int argc, char *argv[])
{
	No *ptr_lista;
	int valor_insercao;
	int i;

	imprimir_cabecalho();

	printf("Informe o valor que deseja inserir na cabeca da lista:\n");
	scanf("%d",&valor_insercao);
	putchar('\n');

	ptr_lista = (No*)malloc(sizeof(No));
	iniciar_lista(ptr_lista);

	for(i = 0; i < 5; i ++)
	{
		inserir_cabeca(ptr_lista, i);
	}

	printf("Ate o presente momento, a lista possui os seguintes valores:\n");
	putchar('\n');

	imprimir_lista(ptr_lista);

	printf("Com o valor que voce informou, a lista esta da seguinte maneira:\n");
	putchar('\n');

	inserir_cabeca(ptr_lista,valor_insercao);

	imprimir_lista(ptr_lista);

	printf("Obrigado por utilizar o programa.\n");
	putchar('\n');

	free(ptr_lista);

	return 0;
}
Пример #13
0
int main(){
	struct nodo *cabecera;
	int valor;
	cabecera = (struct nodo*) malloc(sizeof(struct nodo));
	inicializar(cabecera);
	printf("presiona -1 si quieres dejar de meter datos");
	while(1){
		printf("inserta un numero: ");
		scanf("%d",&valor);
		if(valor == -1)
			break;
		insertar_al_final(cabecera,valor);
	}
	imprimir_lista(cabecera);
	printf("dame el dato que quiereas eliminar ");
	scanf("%d",&valor);
	borrar_elemento(cabecera,valor);
	printf("eliminado \n");
	imprimir_lista(cabecera);
	borrar_lista(cabecera);
	return 0;
}
Пример #14
0
int main(){
	struct nodo *cabecera;
	int valor,despues;
	cabecera = (struct nodo*) malloc(sizeof(struct nodo));
	inicializar(cabecera);	
	printf("agrega datos y con -1 para ya no agregar mas\n");
	while(1){
		printf("dame un numero: ");
		scanf("%d",&valor);
		if(valor == -1)
			break;
		insertar_al_final(cabecera,valor);
	}
	imprimir_lista(cabecera);
	printf("despues de que numero quieres agregar algo");
	scanf("%d",&despues);
	printf("dime que dato quieres agregar despues de %d",despues);
	scanf("%d",&valor);
	insertar_despues_de(cabecera,valor,despues);
	imprimir_lista(cabecera);
	borrar_lista(cabecera);
	return 0;
	
}
Пример #15
0
int main(){
	struct nodo *cabecera;
	int dato;
	cabecera = (struct nodo*) malloc(sizeof(struct nodo));
	inicializar(cabecera);
	while(1){
		printf("dame un numero: ");
		scanf("%d",&dato);
		if(dato == -1)
			break;
		insertar_al_principio(cabecera,dato);
	}
	imprimir_lista(cabecera);
	borrar_lista(cabecera);
	return 0;
}
Пример #16
0
int main()
{
	int valor;
	struct nodo lista;
	inicializar(&lista);
	while(valor != -1){
		printf("Escribe un numero\n");
		scanf("%d", &valor);
        if (valor != -1)
		insertar_al_final(&lista,valor);
	}

	imprimir_lista(&lista);
    	borrar_lista(&lista);

	return 0;
}
Пример #17
0
int main (){
	struct nodo *cabecera;
	int valor;
	cabecera = (struct nodo*) malloc(sizeof(struct nodo));
	inicializar(cabecera);
	printf("ingresa los datos. Ingresa -1 al para dejar de ingresar datos \n");
	while(1){
		printf("dame un numero: ");
		scanf("%d",&valor);
		if(valor==-1)
			break;
		insertar_al_final(cabecera, valor);
	}
	imprimir_lista(cabecera);
	borrar_lista(cabecera);
	return 0;
}
Пример #18
0
int main()
{
    struct nodo_doble cabecera;
    int valor_nuevo = 0;
    inicializar(&cabecera);

    printf("Introduce los datos\nIntroduce -1 cuando finalices\n");
    while(valor_nuevo != -1){
            scanf("%d", &valor_nuevo);
            if(valor_nuevo != -1){
        insertar_al_principio(&cabecera, valor_nuevo);
            }
    }
    imprimir_lista(&cabecera);
    borrar_lista(&cabecera);

    return 0;
}
Пример #19
0
int main(){
    struct nodo *root = (struct nodo*) malloc(sizeof(struct nodo) * 1);
    inicializar(root);
    int dato;

    printf("Ingreso de datos en la lista:\nCon -1 termina el ingreso de datos a la lista\n\n");

    while(true){
    printf("\nDato a ingresar :");
    scanf("%d",&dato);
        if(dato != -1){
            insertar_al_principio(root,dato);
            //imprimir_lista(root);
        }
        else{
            break;
        }
    }
        if(dato== -1){
        free(root);
        imprimir_lista(root);
        }
    return 0;
}
Пример #20
0
/*fin de la declaracion de las funcines*/
int main(int argc, char *argv[]) {
	int op, numero;
	_nodo *lista1, *lista2;

	lista1 = NULL;
	lista2 = NULL;

	do{
		printf("1- insertar en lista 1\n");
		printf("2- insertar en lista 2\n");
		printf("3- ordenar las listas\n");
		printf("4- mezclar listas\n");
		printf("5- Salir\n");
		scanf("%d", &op);

		switch(op){
			case 1:{
				do{
					printf("Introduce un numero.. Presione 0 para dejar de introducir elementos\n >"); scanf("%d",&numero);
					if(numero != 0) lista1 = insertar(numero, lista1);
				}while(numero!=0);
				break;
			}
			case 2:{
				do{
					printf("Introduce un numero.. Presione 0 para dejar de introducir elementos\n >"); scanf("%d",&numero);
					if(numero != 0) lista2 = insertar(numero, lista2);
				}while(numero!=0);
				break;
			}
			case 3:
				if(!lista_vacia(lista1) && !lista_vacia(lista2)){
					ordenar_lista(lista1);
					ordenar_lista(lista2);
					printf("Lista 1\n");
					imprimir_lista(lista1);
					printf("Lista 2\n");
					imprimir_lista(lista2);
				}else{
					printf("Error, alguna lista que se va a ordenar esta vacia\n");
				}
			break;
			
			case 4:
				if(!lista_vacia(lista1) && !lista_vacia(lista2)){
					printf("Lista mezclada:\n");
					imprimir_lista(mezcla2(lista1, lista2));
				}
				else{
					printf("Error, alguna lista que se va a mezclar esta vacia\n");
				}
			break;
				
			default:
				printf("Opcion invalida, Intente nuevamente\n");
			break;
			
		}
	}while(op != 5);

	return EXIT_SUCCESS;
}
Пример #21
0
int main() {
  lista lst = crear_lista();

  nat cont_comandos = 0;
  bool salir = false;
  while (!salir) {

    mostrar_prompt(cont_comandos);
    enum_cmd_t enum_com = identificador_comando();

    // procesar el comando
    switch (enum_com) {
    case cmd_fin:
      salir = true;
      imprimir_con_nl(msg_fin);
      break;
    case cmd_comentario:
      escribir_nueva_linea();
      break;
    case cmd_ins_lista: {
      info_t info = leer_info(MAX_LARGO_PALABRA);
      while (es_valida_info(info)) {
        insertar_despues(info, final_lista(lst), lst);
        info = leer_info(MAX_LARGO_PALABRA);
      }
      liberar_info(info);
      texto_t txt = cadena_a_texto("primero");
      info = crear_info(0, txt);
      insertar_antes(info, inicio_lista(lst), lst);
      imprimir_lista(lst);
      break;
    }
    case cmd_recorrido_lista: {
      if (!es_vacia_lista(lst)) {
        localizador loc = inicio_lista(lst);
        while (es_localizador_lista(loc)) {
          texto_t txt = info_a_texto(info_lista(loc, lst));
          escribir_texto(txt);
          liberar_texto(txt);
          loc = siguiente(loc, lst);
        }
        loc = final_lista(lst);
        while (es_localizador_lista(loc)) {
          texto_t txt = info_a_texto(info_lista(loc, lst));
          escribir_texto(txt);
          liberar_texto(txt);
          loc = anterior(loc, lst);
        }
        escribir_nueva_linea();
      }
      break;
    }
    case cmd_segmentos_lista: {
      int clave1 = leer_int();
      int clave2 = leer_int();
      localizador desde = siguiente_clave(clave1, inicio_lista(lst), lst);
      localizador hasta = anterior_clave(clave2, final_lista(lst), lst);
      if (es_localizador_lista(desde) && es_localizador_lista(hasta) &&
          precede_en_lista(desde, hasta, lst)) {
        lista sgm = separar_segmento(desde, hasta, lst);
        lista copia = segmento_lista(inicio_lista(sgm), final_lista(sgm), sgm);
        imprimir_lista(sgm);
        liberar_lista(sgm);
        insertar_segmento_despues(copia, final_lista(lst), lst);
        liberar_lista(copia);
        imprimir_lista(lst);
      }
      break;
    }
    case cmd_modificar_lista: {
      int clave1 = leer_int();
      int clave2 = leer_int();
      localizador loc1 = siguiente_clave(clave1, inicio_lista(lst), lst);
      localizador loc2 = anterior_clave(clave2, final_lista(lst), lst);
      if (es_localizador_lista(loc1) && es_localizador_lista(loc2)) {
        intercambiar(loc1, loc2, lst);
        imprimir_lista(lst);
        retroceder(loc2, lst);
        imprimir_lista(lst);
      }
      break;
    }
    case cmd_ordenar_lista: {
      nat len_lst = longitud(lst);
      imprimir_int(len_lst);
      localizador loc = inicio_lista(lst);
      for (nat i = 0; i < len_lst / 2 - 1; i++)
        loc = siguiente(loc, lst);
      lista primera = segmento_lista(inicio_lista(lst), loc, lst);
      lista segunda =
          segmento_lista(siguiente(loc, lst), final_lista(lst), lst);

      lista concat = concatenar(primera, segunda);
      imprimir_lista(concat);
      liberar_lista(concat);

      if (son_numeros_iguales(primera, segunda)) {
        imprimir_lista(primera);
      }

      if (!esta_ordenada(primera))
        ordenar(primera);
      if (!esta_ordenada(segunda))
        ordenar(segunda);

      lista mzc = mezcla(primera, segunda);
      imprimir_lista(mzc);

      unificar(mzc);
      imprimir_lista(mzc);
      liberar_lista(mzc);
      liberar_lista(primera);
      liberar_lista(segunda);
      break;
    }
    case cmd_filtrado_lista: {
      int clave = leer_int();
      texto_t palabra = leer_palabra(MAX_LARGO_PALABRA);
      comp_t criterio = texto_a_comp(palabra);
      liberar_texto(palabra);
      if (pertenece(clave, lst)) {
        imprimir_int(cantidad(clave, lst));
      }
      lista flt = filtrado(clave, criterio, lst);
      imprimir_lista(flt);
      liberar_lista(flt);
      break;
    }
    case cmd_reversa_lista: {
      int dato1 = leer_int();
      int dato2 = leer_int();
      if (esta_ordenada(lst) && pertenece(dato1, lst) &&
          pertenece(dato2, lst) && dato1 < dato2) {
        lista sub = sublista(dato1, dato2, lst);
        imprimir_lista(sub);
        lista rev = reversa(sub);
        imprimir_lista(rev);
        cambiar_todos(dato1, dato2, rev);
        imprimir_lista(rev);
        liberar_lista(sub);
        liberar_lista(rev);
      }
      break;
    }
    case cmd_liberar_lista: {
      liberar_lista(lst);
      lst = crear_lista();
      break;
    }
    default:
      imprimir_con_nl(msg_cmd_no_reconocido);
      break;
    } // switch
    texto_t resto_linea = leer_resto_linea(MAX_RESTO_LINEA);
    liberar_texto(resto_linea);
  } // while
  liberar_lista(lst);
  return 0;
}