Vous êtes sur la page 1sur 22

//encolar,desencolar #include<stdio.h> #include<stdlib.h> #include<malloc.

h> //DECLARACION DE ESTRUCTURA COLA struct tcola { int num; struct tcola *sig; }; //Prototipos void crear(struct tcola **frente, struct tcola **final); int vacia(struct tcola **frente); void encolar(struct tcola **frente, struct tcola **final, int elem); int desencolar(struct tcola **frente, struct tcola **final); int main(void) { struct tcola *frente, *final; int elem; crear(&frente,&final); printf("\nIngrese elementos;(0 para terminar)\n\n"); do { printf("Num:"); scanf("%d",&elem); encolar(&frente,&final,elem); } while(elem!=0); if(vacia(&frente)) printf("\nCola vacia!"); else while(!vacia(&frente)) { elem=desencolar(&frente,&final); printf("\n Num:%d",elem); } system("pause"); return 0; } //CREAR O INICIALIZAR void crear(struct tcola **frente, struct tcola **final) { *frente=NULL; *final=NULL; }

//FUNCION VACIA int vacia(struct tcola **frente) {

return(*frente==NULL); }

//ENCOLADO void encolar(struct tcola **frente, struct tcola **final, int elem) { struct tcola *nuevo; nuevo=(struct tcola *) malloc(sizeof(struct tcola)); nuevo->num=elem; nuevo->sig=NULL; if(*final==NULL) *frente=nuevo; else { (*final)->sig=nuevo; } *final=nuevo; }

//DESENCOLADO int desencolar(struct tcola **frente, struct tcola **final) { struct tcola *aux; int elem; aux=*frente; elem=aux->num; *frente=aux->sig; if(*frente==NULL) *final=NULL; free(aux); return elem; }

//-------------------//Estruct #include<stdio.h> #include<stdlib.h> struct alumno { char nombre[20]; char direccion[20]; int edad; int nota; }; int main()

{ int i,snota=0,sedad=0; struct alumno alu[5]; printf("\n\n ingrese datos:"); for(i=0;i<5;i++) { printf("\n\n Registro Nro=%d",i+1); printf("\n Nombre:"); gets(alu[i].nombre); printf("\n Direccion:"); gets(alu[i].direccion); printf("\n Edad:"); scanf("%d", &alu[i].edad); printf("\n Nota:"); scanf("%d", &alu[i].nota); fflush(stdin); } printf("\n\n Los Registros ingresados son:"); printf("\n Nombre \t Edad \t Nota"); for(i=0;i<5;i++) { printf("\n %s \t %d \t %d", alu[i].nombre, alu[i].edad, alu[ i].nota); snota=snota+alu[i].nota; sedad=sedad+alu[i].edad; } printf("\n\n El promedio de notas es: %d\n", snota/5,sedad/5); system("pause"); }

//-------------------//PilaAcola #include <stdio.h> #include <stdlib.h> #include <malloc.h> struct tpila { int num; struct tpila *ant; }; struct tcola { int num; struct tcola *sig; }; //prototipos void crearc(struct tcola **frente, struct tcola **final); int vaciac(struct tcola **frente); void encolar(struct tcola **frente,struct tcola **final,int elem); int desencolar(struct tcola **frente,struct tcola **final); void crearp(struct tpila **cima);

int vaciap(struct tpila **cima); void apilar(struct tpila **cima,int elem); int desapilar(struct tpila **cima); void crearp(struct tpila **cima) { *cima=NULL; } int vaciap(struct tpila **cima) { return(*cima==NULL); } void apilar(struct tpila **cima, int elem) { struct tpila *nuevo; nuevo=(struct tpila*)malloc(sizeof(struct tpila)); nuevo->num=elem; nuevo->ant=*cima; *cima = nuevo; } int desapilar(struct tpila **cima) { struct tpila *aux; int elem; aux=*cima; elem=aux->num; *cima=aux->ant; free(aux); return elem; } int main(void) { struct tcola *frente, *final; struct tpila *cima; int elem; crearc(&frente,&final); crearp(&cima); printf("\nIngrese elementos a la pila (o 0 para terminar)\n\n"); do{ printf("numero a la pila: "); scanf("%d",&elem); if(elem!=0) { apilar(&cima ,elem); } }while(elem!=0); if(vaciap(&cima))printf("\nPila vacia!"); else while(!vaciap(&cima)) { elem=desapilar(&cima); printf("\n %d\n",elem); if(elem%5==0) {

encolar(&frente,&final,elem); } } puts("Los numeros de la cola\n"); while(!vaciac(&frente)) { elem=desencolar(&frente, &final); printf("\n %d\n",elem); } system("PAUSE"); return 0; } //crear o inicializar void crearc(struct tcola **frente,struct tcola **final) { *frente=NULL; *final=NULL; } //funcion vacia int vaciac(struct tcola **frente) { return(*frente==NULL); } //encolado void encolar(struct tcola **frente,struct tcola **final,int elem) { struct tcola *nuevo; nuevo=(struct tcola*)malloc (sizeof(struct tcola)); nuevo->num=elem; nuevo->sig=NULL; if(*final==NULL) { *frente=nuevo; } else { (*final)->sig=nuevo; } *final=nuevo; } //desencolado int desencolar(struct tcola **frente,struct tcola **final) { struct tcola *aux; int elem; aux=*frente; elem=aux->num; *frente=aux->sig; if(*frente==NULL) *final=NULL; free(aux); return elem; }

//-------------------//ColaAPila #include <stdio.h> #include <stdlib.h> #include <malloc.h> struct tpila { int num; struct tpila *ant; }; struct tcola { int num; struct tcola *sig; }; //prototipos void crearc(struct tcola **frente, struct tcola **final); int vaciac(struct tcola **frente); void encolar(struct tcola **frente,struct tcola **final,int elem); int desencolar(struct tcola **frente,struct tcola **final); void crearp(struct tpila **cima); int vaciap(struct tpila **cima); void apilar(struct tpila **cima,int elem); int desapilar(struct tpila **cima); void crearp(struct tpila **cima) { *cima=NULL; } int vaciap(struct tpila **cima) { return(*cima==NULL); } void apilar(struct tpila **cima, int elem) { struct tpila *nuevo; nuevo=(struct tpila*)malloc(sizeof(struct tpila)); nuevo->num=elem; nuevo->ant=*cima; *cima = nuevo; } int desapilar(struct tpila **cima)

{ struct tpila *aux; int elem; aux=*cima; elem=aux->num; *cima=aux->ant; free(aux); return elem; } int main(void) { struct tcola *frente, *final; struct tpila *cima; int elem; crearc(&frente,&final); crearp(&cima); printf("\nIngrese elementos a la cola (o 0 para terminar)\n\n"); do{ printf("numero a la cola: "); scanf("%d",&elem); if(elem!=0) { encolar(&frente,&final,elem); } }while(elem!=0); while(!vaciac(&frente)) { elem=desencolar(&frente,&final); printf("%d\n", elem); if(elem>0) { apilar (&cima, elem); } } puts("Los numeros de la pila\n"); if(vaciap(&cima))printf("\nPila vacia!"); else while(!vaciap(&cima)) { elem=desapilar(&cima); printf("\n %d\n",elem); } system("PAUSE"); return 0; } //crear o inicializar void crearc(struct tcola **frente,struct tcola **final) { *frente=NULL; *final=NULL; } //funcion que devuelve cierto si la cola esta vacia int vaciac(struct tcola **frente) { return(*frente==NULL); }

//encolado void encolar(struct tcola **frente,struct tcola **final,int elem) { struct tcola *nuevo; nuevo=(struct tcola*)malloc (sizeof(struct tcola)); nuevo->num=elem; nuevo->sig=NULL; if(*final==NULL) { *frente=nuevo; } else { (*final)->sig=nuevo; } *final=nuevo; } //desencolado int desencolar(struct tcola **frente,struct tcola **final) { struct tcola *aux; int elem; aux=*frente; elem=aux->num; *frente=aux->sig; if(*frente==NULL) *final=NULL; free(aux); return elem; }

//-------------------//Serie #include<stdio.h> #include<stdlib.h> #include<math.h> #include<conio.h> int invertir(int); int main() { int n,res; do { printf("Ingrese N: "); scanf("%d",&n); }while(n<=10); res=invertir(n); printf("El resultado de la serie=%d\n",res); getche(); } int invertir (int n) { if(n< 10)

return 'n'; else return ((n%10)+invertir(n/10)*10); }

//-------------------//Cola ponesacaprom /* Se tiene una cola de nmeros. Al desencolar averiguar cuntos mltiplos de 5 haba en la cola. Adems imprimir el promedio de todos los nmeros. */ #include <stdio.h> #include <stdlib.h> #include <conio.h> void insertar(void); void visualizar(void); struct cola { int num; struct cola *sig; } *FRENTE = NULL, *FINAL = NULL, *AUX = NULL; void main() { char opc; while(opc != '3') { system("CLS"); printf("\n 1.- Insertar"); printf("\n 2.- Visualizar"); printf("\n 3.- Salir"); printf("\n Ingrese una opcion: "); opc = getche(); switch(opc) { case '1': insertar(); break; case '2': visualizar(); break; } } } void insertar(void) { system("CLS"); AUX = (struct cola*)malloc(sizeof(struct cola)); printf("\nIngrese un numero:");

scanf("%d", & AUX->num); AUX->sig=NULL; if(FINAL == NULL) FRENTE = AUX; else { FINAL->sig=AUX; } FINAL = AUX; system("CLS"); } void visualizar(void) { int valor, canMulCinco = 0, cont = 0, suma = 0, prom = 0; if(FRENTE==NULL) { printf("\n\nCOLA VACIA!"); system("PAUSE"); } else { while (FRENTE!=NULL) { AUX = FRENTE; printf("\nNumero:%d ", AUX->num); valor = AUX->num; if (valor % 5 == 0) { canMulCinco = canMulCinco + 1; } suma = suma + valor; cont = cont + 1; FRENTE = FRENTE->sig; free(AUX); } FINAL = NULL; } prom = suma / cont; printf("\nCantidad de multiplos de 5: %d", canMulCinco); printf("\Promedio de todos los numeros: %d\n\n\n",prom); system("PAUSE"); }

//-------------------//Cola comparac /* Escribir un programa que verifique los contenidos de dos colas y devuelva verdadero si son idnticas y falso en caso contrario */

#include #include #include #include

<stdio.h> <stdlib.h> <conio.h> <malloc.h>

void insertarCola(void); void compararCola(void); struct cola1 { int num1; struct cola1 *sig1; }*frente1 = NULL, *final1 = NULL, *aux1 = NULL; struct cola2 { int num2; struct cola2 *sig2; }*frente2 = NULL, *final2 = NULL, *aux2 = NULL; int main(int argc, char *argv[]) { insertarCola(); compararCola(); return 0; } void insertarCola(void) { int i = 0; for (i = 1; i<=3; i++) { system("CLS"); printf("\nIngrese valores para la primera cola:"); aux1 = (struct cola1*)malloc(sizeof(struct cola1)); printf("\n Ingrese un numero: "); scanf("%d",& aux1->num1); aux1->sig1=NULL; if(final1 == NULL) frente1 = aux1; else { final1->sig1=aux1; } final1 = aux1; system("CLS"); } for (i = 1; i<=3; i++) { system("CLS"); printf("\nIngrese valores para la segunda cola:"); aux2 = (struct cola2*)malloc(sizeof(struct cola2)); printf("\n Ingrese un numero: "); scanf("%d",& aux2->num2); aux2->sig2=NULL; if(final2 == NULL)

frente2 = aux2; else { final2->sig2=aux2; } final2 = aux2; system("CLS"); } } void compararCola(void) { int p1, p2, band=0; if (frente1 == NULL frente2 == NULL) { printf("\nPILAS VACIAS!!"); } else { while (frente1 != NULL && frente2 !=NULL && band==0) { aux1 = frente1; aux2 = frente2; p1 = aux1->num1; p2 = aux2->num2; if (p1 != p2) { band = 1; } frente1 = frente1->sig1; frente2 = frente2->sig2; free(aux1); free(aux2); } final1 = NULL; final2 = NULL; } if (band == 0) { printf("\nLas colas son identicas\n"); } else if (band ==1) { printf("\nLas colas no son identicas\n"); } system("PAUSE"); } //---------// colaYlista.volc #include #include #include #include void void void void <stdio.h> <conio.h> <stdlib.h> <malloc.h>

insertar (void); volcar (void); visualizarlista(void); visualizarpila(void);

struct lista { int num; char nom [20]; struct lista *sig; } *CAB=NULL,*AUX=NULL,*F=NULL,*P=NULL,*S=NULL; struct pila { int num; char nom [20]; struct pila *ant; }*CABP=NULL,*AUXP=NULL; int main(int argc, char *argv[]) { int opc; do { system ("cls"); printf ("\n 1- insertar: "); printf ("\n 2- volcar: "); printf ("\n 3- visualizarlista: "); printf ("\n 4- visualizarpila: "); printf ("\n 5- salir: "); scanf ("%d", & opc); switch (opc) { case 1: insertar (); break; case 2: volcar (); break; case 3: visualizarlista(); break; case 4: visualizarpila (); } } while (opc!=5); } void insertar (void) { AUX=(struct lista*)malloc(sizeof (struct lista)); system ("cls"); printf ("introducir nombre: "); scanf ("%s", & AUX->nom); printf ("introducir numero: "); scanf ("%d", & AUX->num); AUX->sig=NULL; if (CAB==NULL) { CAB=AUX; S=AUX; } else

{ S->sig=AUX; S=AUX; } } void volcar (void) { if (CAB==NULL)return; system ("cls"); AUX=CAB; while (AUX!=NULL) { AUXP=(struct pila *)malloc(sizeof(struct pila)); system("cls"); fflush (stdin); strcpy(AUXP->nom,AUX->nom); AUXP->num = AUX->num; if(CABP==NULL) { CABP=AUXP; AUXP->ant=NULL; } else { AUXP->ant=CABP; CABP=AUXP; } AUX=AUX->sig; } system ("pause"); }

void visualizarlista (void) { if (CAB==NULL)return; system ("cls"); AUX=CAB; while (AUX!=NULL) { printf ("nombre: %s\n", AUX->nom); printf ("numero: %d\n\n", AUX->num); AUX=AUX->sig; } system ("pause"); } void visualizarpila(void) { if (CAB==NULL) { printf("pila vacia\n\n\n"); system("PAUSE"); return; } system ("cls"); while (CABP!=NULL) {

AUXP=CABP; printf("Nombre: %s\n", AUXP->nom); printf("Numero: %d\n", AUXP->num); CABP=CABP->ant; free(AUXP); } system ("pause"); } //-------------//Lista reg /*Se tiene una lista enlazada de datos de clientes. Cada registro tiene los sigt s. campos: Codigo, Nombre, Ciudad. Extraer todos los registros de personas que viven en "Lu que". Imprimr la lista resultante. */ #include #include #include #include <stdio.h> <conio.h> <stdlib.h> <malloc.h>

void insertar (void); void extraer (void); void visualizar(void); struct lista { int cod; char nom[20]; char ciud[20]; struct lista *sig; }*CAB=NULL,*AUX=NULL,*F=NULL,*P=NULL,*S=NULL; int main(int argc, char *argv[]) { int opc; do { system ("cls"); printf ("\n 1- insertar: "); printf ("\n 2- extraer : "); printf ("\n 3- visualizar: "); printf ("\n 4- salir: "); scanf ("%d", & opc); switch (opc) { case 1: insertar (); break; case 2: extraer (); break; case 3: visualizar (); } } while (opc!=4); }

void insertar (void) { AUX=(struct lista*)malloc(sizeof (struct lista)); system ("cls"); printf ("introducir codigo: "); scanf ("%d", & AUX->cod); printf ("introducir nombre: "); scanf ("%s", & AUX->nom); printf ("introducir ciudad: "); scanf ("%s", & AUX->ciud); AUX->sig=NULL; if (CAB==NULL) { CAB=AUX; S=AUX; } else { S->sig=AUX; S=AUX; } } void extraer (void) { int var; if (CAB==NULL) return; system ("cls"); fflush (stdin); F=CAB; while(F->sig !=NULL) { if (strcmp(CAB->ciud,"Luque")==0) { P=CAB; CAB=CAB->sig; F=F->sig; free (P); } else { P=F=CAB; while ((strcmp(P->ciud,"Luque")!=0) && P!=NULL) { if (P==CAB) P=P->sig; else { P=P->sig; F=F->sig; } } if (P==NULL) return; F->sig=P->sig; if (S==P)S=F; free (P); } } }

void visualizar (void) { if (CAB==NULL)return; system ("cls"); AUX=CAB; while (AUX!=NULL) { printf ("Codigo: %d\n", AUX->cod); printf ("Nombre: %s\n", AUX->nom); printf ("Ciudad: %s\n", AUX->ciud); AUX=AUX->sig; } system ("pause"); }

//-----------//lista_Apila #include #include #include #include <stdio.h> <conio.h> <stdlib.h> <malloc.h>

void insertar (void); void volcar (void); void visualizarlista(void); void visualizarpila(void); struct lista { int num; char nom [20]; struct lista *sig; }*CAB=NULL,*AUX=NULL,*F=NULL,*P=NULL,*S=NULL; struct pila { int num; char nom [20]; struct pila *ant; }*CAB1=NULL,*AUX1=NULL; int main(int argc, char *argv[]) { int opc; do { system ("cls"); printf("\n*** Escribir un programa que lea una lista de nombres y numeros telefonicos,"); printf("\n cargarlos en una lista enlazada y luego volcarlos en una pila. ***"); printf ("\n\n\n\t\t MENU PRINCIPAL "); printf ("\n\t\t*************** "); printf ("\n\n\t\t1.- INSERTAR: "); printf ("\n\n\t\t2.- VOLCAR: "); printf ("\n\n\t\t3.- VIZUALIZAR LA LISTA: "); printf ("\n\n\t\t4.- VIZUALIZAR LA PILA: ");

printf ("\n\n\t\t5.- SALIR: "); printf("\n\n\t\t**Ingrese opcion: "); scanf ("%d", & opc); switch (opc) { case 1: insertar (); break; case 2: volcar (); break; case 3: visualizarlista(); break; case 4: visualizarpila (); } } while (opc!=5); } void insertar (void) { AUX=(struct lista*)malloc(sizeof (struct lista)); system ("cls"); printf ("INTRODUSCA EL NOMBRE: "); scanf ("%s", & AUX->nom); printf ("INTRODUSCA UN NUMERO: "); scanf ("%d", & AUX->num); AUX->sig=NULL; if (CAB==NULL) { CAB=AUX; S=AUX; } else { S->sig=AUX; S=AUX; } } void volcar (void) { if (CAB==NULL)return; system ("cls"); AUX=CAB; while (AUX!=NULL) { AUX1=(struct pila *)malloc(sizeof(struct pila)); system("cls"); fflush (stdin); strcpy(AUX1->nom,AUX->nom); AUX1->num = AUX->num; if(CAB1==NULL) { CAB1=AUX1; AUX1->ant=NULL; } else

{ AUX1->ant=CAB1; CAB1=AUX1; } AUX=AUX->sig; } system ("pause"); }

void visualizarlista (void) { if (CAB==NULL)return; system ("cls"); AUX=CAB; while (AUX!=NULL) { printf ("NOMBRE: %s\n", AUX->nom); printf ("NUMERO: %d\n\n", AUX->num); AUX=AUX->sig; } system ("pause"); } void visualizarpila(void) { if (CAB==NULL) { printf("LA PILA ESTA VACIA\n\n\n"); system("PAUSE"); return; } system ("cls"); while (CAB1!=NULL) { AUX1=CAB1; printf("NOMBRE: %s\n", AUX1->nom); printf("NUMERO: %d\n", AUX1->num); CAB1=CAB1->ant; free(AUX1); } system ("pause"); }

//------//Puntero #include <stdio.h> #include <conio.h> #include <ctype.h> int main(int argc, char *argv[]) { char str [70],*C; printf("**Escribir un programa que comprima una cadena de caracteres, suprimie ndo todos los caracteres espacio en blanco***");

printf ("\n\n\n **INTRODUCIR UNA CADEA DE CARACTERES CON ESPACIO: "); gets (str); printf ("\n\n**CADENA SIN ESPACIOS: "); C=str; while (*C) { if(*C != ' ') { printf ("%c", *C); } *C++; } printf("\n\n"); system("PAUSE"); return 0; } //-----------//eliminar #include #include #include #include <stdio.h> <conio.h> <stdlib.h> <malloc.h>

void insertar (void); void borrar (void); void visualizar(void); struct lista { int codigo; char nombre[20]; char ciudad[20]; struct lista *sig; }*CAB=NULL,*AUX=NULL,*F=NULL,*P=NULL,*c=NULL; int main(int argc, char *argv[]) { int opc; do { system ("cls"); printf("***Utilizar una lista enlazada para controlar una lista de pasajer os de "); printf(" una lnea area el programa principal debe ser controlado por men y"); printf(" permitir al usuario visualizar los datos de un pasajero determina do"); printf(" visualizar la lista completa, crear una lista, insertar un nodo, borrar"); printf("un nodo y sustituir los datos personales de un determinado pasajer o***"); printf("\n\n\n\t\tMENU PRINCIPAL"); printf("\n\t\t***************"); printf ("\n\t\t 1* INSERTAR: "); printf ("\n\t\t 2* BORRAR : "); printf ("\n\t\t 3* VIZUALIZAR: "); printf ("\n\t\t 4* SALIR: ");

printf("\n\n\t\t**Ingrese opcion: "); scanf ("%d", & opc); switch (opc) { case 1: insertar (); break; case 2: borrar (); break; case 3: visualizar (); } } while (opc!=4); } void insertar (void) { AUX=(struct lista*)malloc(sizeof (struct lista)); system ("cls"); printf("INTRODUSCA LOS SIGUIENTES DATOS"); printf("\n*******************************"); printf ("\n CODIGO: "); scanf ("%d", & AUX->codigo); printf ("\n NOMBRE: "); scanf ("%s", & AUX->nombre); printf ("\n CIUDAD: "); scanf ("%s", & AUX->ciudad); AUX->sig=NULL; if (CAB==NULL) { CAB=AUX; c=AUX; } else { c->sig=AUX; c=AUX; } } void borrar (void) { char nom1[20]; if (CAB==NULL) return; system ("cls"); printf("Introduzca el nombre a eliminar: "); fflush (stdin); scanf("%s", &nom1); F=CAB; if (strcmp(CAB->nombre, nom1)==0) { P=CAB; CAB=CAB->sig; F=F->sig; free (P); } else { P=F=CAB;

while ((strcmp(P->nombre, nom1)!=0) && P!=NULL) { if (P==CAB) P=P->sig; else { P=P->sig; F=F->sig; } } if (P==NULL) return; F->sig=P->sig; if (c==P)c=F; free (P); } } void visualizar (void) { if (CAB==NULL) { printf(" \n LA LISTA ESTA VACIA \n \n"); } else { system ("cls"); AUX=CAB; while (AUX!=NULL) { printf ("CODIGO: %d\n", AUX->codigo); printf ("NOMBRE: %s\n", AUX->nombre); printf ("CIUDAD: %s\n", AUX->ciudad); AUX=AUX->sig; } } system ("pause"); }

Vous aimerez peut-être aussi