Beispiel #1
0
int main(int argc, char* argv[]){
    
    Lista l1=vacia(), l2=vacia();
    FILE *in1=fopen(*(argv+1),"r"), *in2=fopen(*(argv+2),"r"), *out=fopen(*(argv+3),"w");
    char pal1[40], *pal2; 
    
    while(fscanf(in1,"%s",pal1)>0){
        pal2=(char*)malloc(40);
        strcpy(pal2,pal1); 
        l1=cons(pal2,l1);
    }

    while(fscanf(in2,"%s",pal1)>0){
        pal2=(char*)malloc(40);
        strcpy(pal2,pal1); 
        l2=cons(pal2,l2);
    }


    implista(ordena(pega(l1,l2)),out);     
    printf("%d palabras en %s.\n",numelem(pega(l1,l2)),*(argv+2));
    
    fclose(in1);
    fclose(in2);
    fclose(out); 
  
    
     return 0;   
}
Beispiel #2
0
void lista::modificar(int dat)
{
    // Modifica un dato de la lista, el dato a modificar ser el accesible
    // por el atributo miembro E_Lista, y el nuevo valor ser el que le
    // pasemos por parámetro.
    if (!vacia())
        E_Lista->datos = dat;
}
Beispiel #3
0
void lista::borrar(void)
{
    Nodo *p;
    if (!vacia())
    {
        p = E_Lista;
        E_Lista=E_Lista->sig;
        num_elementos--;
        delete(p);
    }
}
Beispiel #4
0
int main()
{

  printf("vacia? %d\n", vacia());
  printf("push('a');\n");
  push('a');
  printf("vacia? %d\n", vacia());
  printf("pop(): %c\n", pop());
  printf("pop(): %c\n", pop());
  int i;
  for (i=0; i < 25; i++) {
    printf("push('a');\n");
    push('a');
  }
  for (i=0; i < 25; i++)
      printf("pop(): %c\n", pop());

             

}
/*FUNCION IMPRIME*/
void imprimir(posicion L)
     {
	if(vacia(L))
		printf("Lista Vacia");
	else{
		while (L!=NULL){
	   		printf("%d\n",L->elem);
	   		L=L->sig;
     		}
	}
}
int ColaEstatica::desencolar()
{
	int dato;

	if (!vacia())
	{
		dato = datos[getFrente()];
		setFrente(getFrente() + 1);
	}

	return dato;
}
void ColaEstatica::mostrar()
{
	if (!vacia())
	{
		for (size_t i = getFrente(); i < getFinal(); i++)
		{
			cout << "Valor: " << datos[i] << "\n" << "\n";
		}
	}
	else {
		cout << "La cola se encuentra vacia." << "\n" << "\n";
	}
}
Beispiel #8
0
void sacar(int c[])
{
	/* Si pri y ult estan en la misma posicion, entonces solo hay un elemento en la
	 * cola
	 */
	if (pri == ult) {
		pri = ult = -1;
		return;
	}
	/* Si hay mas de un elemento. */
	if (!vacia(c))
		pri = (pri+1) % MAX;
}
/*FUNCION LOCALIZA*/
posicion localiza(tipo_elem x, nodo *L){
	if(vacia(L)){
		return 0;
	}
	else{
	 while (L!=NULL && L->elem!=x)
	       L=L->sig;
	 if (L==NULL)
	       return NULL;
	 else
	       return L;
	}
}
Beispiel #10
0
void Cola::agregar(int e)
{
	Nodo *p = new Nodo(e, NULL);

	if(vacia()) {
		mPrimero = p;
		mUltimo = mPrimero;

		return;
	}
	mUltimo->link = p;
	mUltimo = p;
}
Beispiel #11
0
int main(){
    
     Lista l1=cons('7',cons('8',cons('9',cons('a',cons('b',cons('c',vacia()))))));
     Lista l2=cons('1',cons('2',cons('3',cons('4',cons('5',cons('6',vacia()))))));
          
     printf("La lista l1 tiene %d elementos.\n",numelem(l1));
     puts("Los elementos de la lista l1 son: \n");
     implista(l1);
     puts("------------------------");
     printf("La lista [l1|l2] tiene %d elementos.\n",numelem(pega(l1,l2)));
     puts("Los elementos de la lista [l1|l2] invertida son:\n");
     implista(invierte(pega(l1,l2)));

     printf("Esta el num 3 en la lista 2?: ");
     estaen('3',l2)?puts("Si."):puts("No."); 
     printf("Esta el num 9 en la lista 2?: "); 
     estaen('9',l2)?puts("Si."):puts("No.");
	 
	 puts("------------------------");
	 printf("Lista ordenada que resulta de pegar l1 y l2 ( [l1|l2] ) es: \n");
	 implista(ordena(pega(l1,l2)));    
     return 0;
}
Beispiel #12
0
int Cola::extraer()
{
	if(vacia()) {
		return int();
	}

	Nodo *p = mPrimero;
	int e = mPrimero->dato;

	mPrimero = mPrimero->link;
	delete p;

	return e;
}
Beispiel #13
0
void pruebasVacia(){
	tablero t;
	iniciar(t,TAMANIOTABLERO);
	//Ahora vamos a asignarle un valor cualquiera a una casilla del tablero
	t.m[2][2]=4;
	//Para hacer la comprobación del módulo esperaremos que el resultado dado sea false al
	//checkear la casilla
	if(vacia(t,2,2)==false){
		cout<<"El módulo funciona de manera correcta"<<endl;
	}
	else{
		cout<<"El módulo para comprobar si la casilla está vacía no funciona"<<endl;
	}
}
//FUNCION IMPRIME
void imprime (Nodo * L)
     {
     Nodo*p;
     if(!vacia(L))
     {
     	p=L;
     	while (p->sig!=NULL){
	   printf("%d\n",p->sig->elem);
	   p=p->sig;
	}
     }
     else
	printf("Lista Vacia");
}
Beispiel #15
0
lista::~lista()
{
    // Destructor de la clase lista. Libera la memoria asignada por los
    // nodos de la lista. Esto sólo habrá que hacerlo mientras la lista no
    // esté vacía.
    while (!vacia())
    {
        Nodo *p;
        p = E_Lista;
        E_Lista = E_Lista->sig;
        delete (p);
        num_elementos--;
    }
}
Beispiel #16
0
void insertar(int c[], int e)
{
	if (vacia(c)) {
		pri = (pri+1) % MAX;
		ult = (ult+1) % MAX;
		c[pri] = e;
		return;
	}
	if (llena(c)) {
		puts("ERROR en insertar: Cola llena");
		return;
	}
	/* Si no esta vacia ni llena, entoces hay espacio para insertar. */
	if ((ult = (ult+1) % MAX) != pri)
		c[ult] = e;
}
void Pila_max::poner(int valor)
{
  elemento nuevo;
  nuevo.ele = valor;

  if (vacia())
  {
    nuevo.maximo = valor;
  }
  else
  {
    elemento anterior = tope();
    nuevo.maximo = (valor > anterior.maximo) ? valor : anterior.maximo;
  }

  datos.add(nuevo);
}
Beispiel #18
0
void atender_1 (struct nodo **p,int *s)
{
	struct nodo *q,*r;
	int vacia (struct nodo **p);
	if (vacia (p)) {
		printf ("no existen objetos para atender\n");
		*s = '#';
	}
	else {
		  q = (*p)->sig;
		  r = q->sig;
		  *s = r->info;
		  q->sig = r->sig;
		  if (q == q->sig)
			  *p = q;
		  free (r);
	}
}
Beispiel #19
0
void lista::insertarfin(int dat)
{
    // Inserta un nuevo elemento en la lista, la inserción se realiza al
    // principio de la lista.
    Nodo *p;
    p = new Nodo;
    // Crea un nuevo nodo.
    if(p==NULL)
        exit(1);
    if(vacia())
    {
        p->datos = dat;
        //p->sig = E_Lista;
        E_Lista = p;
        F_Lista = p;
    }
    else{
        p->datos = dat;
        F_Lista->sig = p;
        F_Lista = p;
    }
    num_elementos++; // Incrementa el número de elementos
}
int main (){
tipo_elem x;
posicion E;
posicion pun;
int n, i,opc;
inicializa (&E);

do{
("sys");
printf ("...........Menu............\n");
printf ("1-Inserta.....\n");
printf ("2-Suprime.....\n");
printf ("3-Localiza....\n");
printf ("4-Imprime.....\n");
printf ("5-Vacia.......\n");
printf ("6-Anula.......\n");
printf ("7-Salir.......\n");
printf ("Elige una opcion:....\n");
scanf ("%d", &opc);
switch(opc){
	case 1:
		printf ("\nDame numero a insertar.....\n");
		scanf("%d",& x);
		inserta(x,(&E.cont+1),&E);
		break;
	case 2:
		printf ("\nDame numero a suprimir.....\n");
		scanf ("%d",& x);
		suprimir(localiza(x,E),&E);
		break;
	case 3:
            printf ("\nDame numero a localizar.....\n");
	       scanf ("%d",& x);
	       pun=localiza(x,E);
	       if(pun==NULL)
			printf("Numero no encontrado");
	       else
			printf("%p\n",pun);
	       getch();
	       break;
	case 4:
        	imprimir(E);
		getch();
		break;
	case 5:
		if(vacia(E))
			printf("SI");
		else
			printf("NO");
		getch();
		break;
	case 6:
		anula(&E);
		printf("La lista fue anulada");
		getch();
                break;
	default:
		printf("Opcion No Valida");
}
} while(opc!=7);
return 0;
}
Beispiel #21
0
bool lista::borrar () {
  if(vacia()) return false;
  for(int i=pi; i<ocupacion-1;i++)
	elemento[i].Clonar(elemento[i+1]);
  ocupacion--;
}
int main (){

tipo_elem x;
struct Nodo * pun;
struct encabezado * E;
int n, i,opc;
inicializa (&E);

do{
clrscr();
printf ("...........Menu............\n");
printf ("1-Inserta.....\n");
printf ("2-Suprime.....\n");
printf ("3-Localiza....\n");
printf ("4-Imprime.....\n");
printf ("5-Vacia.......\n");
printf ("6-Anula.......\n");
printf ("7-Salir.......\n");
printf ("Elige una opcion:....\n");
scanf ("%d", &opc);
switch(opc){
	case 1:
		printf ("\nDame numero a insertar.....\n");
		scanf("%d",& x);
		inserta(x,E);
		break;
	case 2:
		printf ("\nDame numero a suprimir.....\n");
		scanf ("%d",& x);
		suprimir(localiza(x,E));
		break;
	case 3:
               printf ("\nDame numero a localizar.....\n");
	       scanf ("%d",& x);
	       pun=localiza(x,E);
	       if(pun==NULL)
			printf("Numero no encontrado");
	       else
			printf("%p\n",pun);
	       getch();
	       break;
	case 4:
		clrscr();
 	    imprime(E);
		getch();
		break;
	case 5:
		if(vacia(E))
			printf("SI");
		else
			printf("NO");
		getch();
		break;
	case 6:
		anula(E);
		printf("La lista fue anulada");
		getch();
		break;
}
} while(opc!=7);
getch();
return 0;
}
Beispiel #23
0
    main(){
    Lista L;
    Nodo p;
    inicializa(&L);
    int opc, opc2, pos;
    char nombre[25];
    do{
    printf("                       ---------Video Centro--------- \n                           Selecciona Una Opcion:  \n\n");
    system ("color a");
    printf("\t\n\n1.-Agregar Pelicula \n\n2.-Eliminar Pelicula \n\n3.-Buscar Pelicula \n\n4.-Mostrar Pelicula\n\n5.-Salir De El Programa\n\n");
    scanf("%i", &opc);
    switch (opc){
         case 1:
            do{
             printf(" \n Agregar \n");
             printf("\n1.-Agregar Pelicula\n2.-Regresar\n\n");
             scanf("%d", &opc2);
             switch(opc2){
                    case 1:
                        printf("\nNombre de la pelicula:  \n");
                        fflush(stdin);
                        gets(nombre);
                        insertapeli(&L, nombre);
                        printf("\n\nLa pelicula a sido agregada...\n");
                        system("pause");
                        break;

                            case 2:
                            break;
                            default:
                                     printf("\nOpcion Incorrecta!!!...\n\n");
                                      system("pause");
                            break;

                }
                }while(opc2!=2);
        break;
        case 2:

             if(vacia(L)==-1){
               printf("\nNo hay Peliculas...\n\n");
               system("pause");
             }
             else{
             char peli[30];
             printf("\n    ---- Menu Eliminar ---- \n");
             printf("\n1.-Eliminar Pelicula\n2.-Eliminar Todas las Peliculas\n\n");
             scanf("%d", &opc2);
             switch(opc2){
                    case 1:
                        printf("\nPelicula...\n");
                            fflush(stdin);
                            gets(nombre);
                            eliminarpelicula(&L,nombre);
                            break;
                                case 2:
                                eliminartodos(&L);
                                break;
                                default:
                                break;
                                    case 3:
                                    printf("Opcion Incorrecta!!\n\n");
                                    system("pause");
                                    break;
                }
                }
break;
             case 3:
             printf(" \n   -----Buscador---- \n");
             printf("Pelicula a Buscar...");
             fflush(stdin);
             gets(nombre);
             *buscar(&L, nombre);
             system("pause");
             break;
             case 4:
             if(vacia(L)==-1){
             printf("\n No hay peliculas!!\n\n");
             system("pause");
             }
             else
             {
             int opc3;
             printf("\n         ----Mostrar Peliculas----\n" );
             mostrarpelicula(&L);
             do{
             printf("\n\nPresiona 2 Para Regresar...");
             scanf("%d", &opc3);
             }while(opc3!=2);
             }
        break;
        case 5:
             printf("Fin de el Programa...\n\n");
             system("pause");
             break;
            default:
                printf("Opcion incorrecta intenta de nuevo!!!\n\n");
                system("pause");
                break;
    }
} while(opc!=5);
getch();
return 0;
}
Beispiel #24
0
void lista::resto()
{
    // Si la lista no está vacía adelanta el puntero de la lista.
    if (!vacia())
        E_Lista = E_Lista->sig;
}