Blog para publicar ejercicios y exámenes del curso intersemestral de Informática II (Estructuras de datos estáticas y dinámicas en memoria principal) de la FCA de la UNAM
jueves, 26 de enero de 2012
Direcciones de Correo Electrónico
Arango Robles Eleazar: eleazararango@yahoo.com.mx
Godoy Saavedra Eduardo: lalogodoy55@gmail.com
Perez Vazquez Christian: cmaryjose19@hotmail.com
Mobarak Elnecave Antonio: amobae@gmail.com
Godoy Saavedra Eduardo: lalogodoy55@gmail.com
Perez Vazquez Christian: cmaryjose19@hotmail.com
Mobarak Elnecave Antonio: amobae@gmail.com
miércoles, 25 de enero de 2012
Arbol_Codigo
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
struct arbol{
int info;
struct arbol *left;
struct arbol *right;
};
typedef struct arbol nodetree;
typedef nodetree *arbolptr;
void insertar(arbolptr*L, int b);
void imprimir(arbolptr L);
void entreorden(arbolptr L);
void instrucciones();
main()
{
arbolptr L=NULL;
int inf, opcion;
instrucciones(),
printf(" \n Seleciona la opcion: ");
scanf("%d",&opcion);
while(opcion!=4){
switch(opcion)
{
case 1:{
printf("\n Introduzca el elemento: ");
scanf("%d",&inf);
insertar(&L,inf);
system("cls");
instrucciones();
break;
}
case 2: {
printf("\n Recorrido en orden\n");
entreorden(L);
printf("\t\n\nPresiona enter para continuar...");
getch();
system("cls");
instrucciones();
break;
}
case 3: {
printf("\n Imprimir el Arbol\n");
imprimir(L);
printf("\tPresiona enter para continuar...");
getch();
system("cls");
instrucciones();
break;
}
case 4: {
printf("Fin del programa");
break;
}
default:
printf("\nOperacion invalida intentelo de Nuez\n");
printf("\t\nPresiona enter para continuar...");
getch();
system("cls");
instrucciones();
break;
}
printf("\n Selecciona una Opcion: ");
scanf("%d",&opcion);
}
printf("Fin del proyecto");
return 0;
}
void instrucciones()
{
printf("\n\n\t\t Recorrido de un Arbol");
printf(" \n\n Menu principial\n");
printf("\n 1- Introducir un elemento al arbol");
printf("\n 2- Recorrido en Orden");
printf("\n 3- Imprimir el arbol");
printf("\n 4- Salir\n\n");
}
void insertar(arbolptr*r,int x)
{
arbolptr pnuevo,panterior,pactual;
pnuevo=(arbol*)malloc(sizeof(arbol));
if(pnuevo!=NULL)
{
pnuevo->info=x;
pnuevo->right=NULL;
pnuevo->left=NULL;
panterior=NULL;
pactual=*r;
printf("%d",pnuevo->info);
while(pactual!=NULL && x>pactual->info)
{
panterior=pactual;
pactual=pactual->left;
}
if(panterior==NULL)
{
pnuevo->left=*r;
*r=pnuevo;
}
else
{
panterior->left=pnuevo;
pnuevo->left=pactual;
}
}
}
void imprimir(arbolptr pactual)
{
if(pactual==NULL)
printf("\n El arbol esta vacio\n\n");
else
{
printf("\n La cadena de elementos del Arbol es: ");
while(pactual!=NULL)
{
printf("%d->",pactual->info);
pactual=pactual->left;
}
printf("NULO\n\n");
}
}
void entreorden(arbolptr pactual)
{
if(pactual!=NULL)
{
entreorden(pactual->left);
printf("\n%d",pactual->info);
entreorden(pactual->right);
}
}
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
struct arbol{
int info;
struct arbol *left;
struct arbol *right;
};
typedef struct arbol nodetree;
typedef nodetree *arbolptr;
void insertar(arbolptr*L, int b);
void imprimir(arbolptr L);
void entreorden(arbolptr L);
void instrucciones();
main()
{
arbolptr L=NULL;
int inf, opcion;
instrucciones(),
printf(" \n Seleciona la opcion: ");
scanf("%d",&opcion);
while(opcion!=4){
switch(opcion)
{
case 1:{
printf("\n Introduzca el elemento: ");
scanf("%d",&inf);
insertar(&L,inf);
system("cls");
instrucciones();
break;
}
case 2: {
printf("\n Recorrido en orden\n");
entreorden(L);
printf("\t\n\nPresiona enter para continuar...");
getch();
system("cls");
instrucciones();
break;
}
case 3: {
printf("\n Imprimir el Arbol\n");
imprimir(L);
printf("\tPresiona enter para continuar...");
getch();
system("cls");
instrucciones();
break;
}
case 4: {
printf("Fin del programa");
break;
}
default:
printf("\nOperacion invalida intentelo de Nuez\n");
printf("\t\nPresiona enter para continuar...");
getch();
system("cls");
instrucciones();
break;
}
printf("\n Selecciona una Opcion: ");
scanf("%d",&opcion);
}
printf("Fin del proyecto");
return 0;
}
void instrucciones()
{
printf("\n\n\t\t Recorrido de un Arbol");
printf(" \n\n Menu principial\n");
printf("\n 1- Introducir un elemento al arbol");
printf("\n 2- Recorrido en Orden");
printf("\n 3- Imprimir el arbol");
printf("\n 4- Salir\n\n");
}
void insertar(arbolptr*r,int x)
{
arbolptr pnuevo,panterior,pactual;
pnuevo=(arbol*)malloc(sizeof(arbol));
if(pnuevo!=NULL)
{
pnuevo->info=x;
pnuevo->right=NULL;
pnuevo->left=NULL;
panterior=NULL;
pactual=*r;
printf("%d",pnuevo->info);
while(pactual!=NULL && x>pactual->info)
{
panterior=pactual;
pactual=pactual->left;
}
if(panterior==NULL)
{
pnuevo->left=*r;
*r=pnuevo;
}
else
{
panterior->left=pnuevo;
pnuevo->left=pactual;
}
}
}
void imprimir(arbolptr pactual)
{
if(pactual==NULL)
printf("\n El arbol esta vacio\n\n");
else
{
printf("\n La cadena de elementos del Arbol es: ");
while(pactual!=NULL)
{
printf("%d->",pactual->info);
pactual=pactual->left;
}
printf("NULO\n\n");
}
}
void entreorden(arbolptr pactual)
{
if(pactual!=NULL)
{
entreorden(pactual->left);
printf("\n%d",pactual->info);
entreorden(pactual->right);
}
}
martes, 24 de enero de 2012
Programa de funcion factorial
/* Factorial de un numero */
#include <stdio.h>
main()
{
int i, numero, factorial=1;
printf("\n Autor : Arango Robles Eleazar: ");
printf("\nEscriba un numero entero menor a 17 para calcular su factorial: ");
scanf("%d",&numero);
for (i=numero; i>1; --i) factorial *= i;
printf("\n%d! = %d\n",numero,factorial);
getch ();
}
#include <stdio.h>
main()
{
int i, numero, factorial=1;
printf("\n Autor : Arango Robles Eleazar: ");
printf("\nEscriba un numero entero menor a 17 para calcular su factorial: ");
scanf("%d",&numero);
for (i=numero; i>1; --i) factorial *= i;
printf("\n%d! = %d\n",numero,factorial);
getch ();
}
Factorial_Imagen_codigo
Luis Eduardo Godoy
#include
#include
int main()
{
int n,f=1,i;
char a;
printf("\n\n\t\tElige una opcion:");
printf("\n\n\t\t1.-Conocer el Factorial de un numero");
printf("\n\n\t\t2.- Salir\n\n\t\t"); scanf("%d",&a);
while (a==1)
{switch (a)
{case 1: printf("\n\n\t\tIngrasa un numero: \n\n\t\t");
scanf("%d",&n);
i=n;
while(i>1) f*=i--;
printf("\n\n\t\t%d!: %d\a",n,f);
printf("\n\n\t\tElige una opcion:\n\n\t\t");
scanf("%d",&a); break;
}
}
getch();
return 0;
}

#include
#include
int main()
{
int n,f=1,i;
char a;
printf("\n\n\t\tElige una opcion:");
printf("\n\n\t\t1.-Conocer el Factorial de un numero");
printf("\n\n\t\t2.- Salir\n\n\t\t"); scanf("%d",&a);
while (a==1)
{switch (a)
{case 1: printf("\n\n\t\tIngrasa un numero: \n\n\t\t");
scanf("%d",&n);
i=n;
while(i>1) f*=i--;
printf("\n\n\t\t%d!: %d\a",n,f);
printf("\n\n\t\tElige una opcion:\n\n\t\t");
scanf("%d",&a); break;
}
}
getch();
return 0;
}

FACTORIAL
Función Factorial en C
#include<stdio.h>
int n;
factorial(int a);
main(void)
{
printf("\nAntonio Mobarak Elnecave. Inter-Info II\n");
printf("\n--** Este programa calcula el factorial de un numero hasta 16 **--\n\n");
printf("Ingresa un numero entero menor a 17: ");
scanf("%d",&n);
printf("\nPara conocer el factorial del numero presiona Enter\n");
getch();
printf("\nEl factorial es: %d", factorial(n));
getch();
}
int factorial(int a)
{
if(a==0 ||a==1) return 1;
else return a*factorial(a-1);
getch();
}
int n;
factorial(int a);
main(void)
{
printf("\nAntonio Mobarak Elnecave. Inter-Info II\n");
printf("\n--** Este programa calcula el factorial de un numero hasta 16 **--\n\n");
printf("Ingresa un numero entero menor a 17: ");
scanf("%d",&n);
printf("\nPara conocer el factorial del numero presiona Enter\n");
getch();
printf("\nEl factorial es: %d", factorial(n));
getch();
}
int factorial(int a)
{
if(a==0 ||a==1) return 1;
else return a*factorial(a-1);
getch();
}
lunes, 23 de enero de 2012
viernes, 20 de enero de 2012
Lista_examen_codigo
#include<stdio.h>
#include<conio.h>
#include <windows.h>
#include <stdlib.h>
struct lista {
int data;
struct lista * sig;
};
typedef struct lista lista;
lista * principio,*final,*actual;
lista * getlista();
void enlista_inicio(int x);
void enlista_final(int x);
void enlista_medio(int n_no,int x);
int borrar_lista(int kv);
void ordenar();
void desplegar();
int contar();
main()
{
int ch,n,n_no;
principio = NULL;
do
{
system ("cls") ;
printf("\a\nINFORMATICA II\n");
printf("\n-----Operaciones con listas-----\n");
printf("\n1. Insertar un valor al principio de la lista");
printf("\n2. Desplegar la lista");
printf("\n3. Insertar un valor al final de la lista");
printf("\n4. Insertar un valor despues de un nodo especifico");
printf("\n5. Borrar un nodo de la lista");
printf("\n6. Ordenar la lista\n");
printf("\n-----Creditos-----");
printf("\n\n7. Autores del Programa");
printf("\n8. Salir");
printf("\n\n Elige una opcion: ");
scanf("%d",&ch);
switch (ch)
{
case 1:
printf("\nIngresa el valor a insertar al principio: ");
scanf("%d",&n);
enlista_inicio(n);
break;
case 2:
desplegar();
break;
case 3:
printf("\nIngresa el valor a insertar al final: ");
scanf("%d",&n);
enlista_final(n);
break;
case 4:
printf("\nIngresa el numero de nodo despues del cual quieres insertar un valor: ");
scanf("%d",&n_no);
if ( n_no > contar() )
{
printf("\nNo existen %d nodo(s). Solo hay %d nodo(s) en la lista"
"\n\nPresione Enter para continuar...",n_no,contar());
getch();
}
else
{
printf("\nIngresa el valor a colocar despues del nodo %d: ",n_no);
scanf("%d",&n);
enlista_medio(n_no,n);
}
break;
case 5:
printf("\nIngresa el valor a borrar: ");
scanf("%d",&n);
borrar_lista(n);
break;
case 6:
ordenar();
break;
case 7:
system("cls");
printf("\n -----------------------------------"
"\n|Autores: |\n\n"
"|-----------------------------------|"
"\n|Arango Robles Eleazar |"
"\n|Godoy Saavedra Eduardo |"
"\n|Mobarak Elnecave Antonio |"
"\n|Perez Vazquez Christian Maria Jose |"
"\n ------------------------------------"
"\n\nCopyright, UNAM. Todos los Derechos Reservados"
"\n\nNo apoyamos a la SOPA"
"\n\nPresiona Enter para regresar...");
getch();
break;
}
}
while (ch!=8);
}
void ordenar() //Ordena la lista
{
int temp;
actual = final = principio;
if (principio==NULL)
{
printf("\nLista vacia, Presione Enter para continuar...");
getch();
}
else
{
for (actual=principio;(actual != NULL);actual=actual->sig)
{
for (final=actual->sig;(final != NULL);final=final->sig)
{
if ( actual->data < final->data )
{
temp = final->data;
final->data = actual->data;
actual->data = temp;
}
}
}
printf("\nLa lista esta ordenada, Presione Enter para continuar...");
getch();
}
}
int borrar_lista(int kv) //Borra un elemento de la lista
{
int borrar;
actual = principio;
if (principio == NULL)
{
printf("\a\nLista vacia, Presione Enter para continuar...");
getch();
}
else
{
while ( (actual != NULL) && (actual->data != kv) )
{
final = actual;
actual = actual->sig;
}
if (actual->data == kv)
{
if (actual == principio)
{
borrar = actual->data;
actual = actual->sig;
free(principio);
principio = actual;
}
else
{
borrar = actual->data;
final->sig = actual->sig;
free(actual);
}
printf("\nEl valor %d se ha borrado, Presione Enter para continuar...",kv);
getch();
return(borrar);
}
else
printf("\nEl valor %d no existe, Presione Enter para continuar...",kv);
getch();
}
return(1);
}
void enlista_medio(int n_no,int x) // Agrega un elemento en la parte media de la lista
{
int ct=0;
lista *temp;
temp = getlista();
temp->data = x;
temp->sig = NULL;
actual = principio;
while (ct < n_no )
{
final = actual;
actual = actual->sig;
ct++;
}
if (principio == NULL) principio = temp;
else if (actual == principio)
{
temp->sig = actual;
principio = temp;
}
else
{
temp->sig = final->sig;
final->sig = temp;
}
}
lista * getlista()
{
lista * temp;
temp = (lista *) malloc(sizeof(lista));
if (temp == NULL)
{
printf("\nFalla en la asignacion de memoria, Presione Enter para continuar...");
exit(1);
}
else
return(temp);
}
int contar()
{
int ct=0;
actual = principio;
while (actual != NULL)
{
ct++;
actual = actual->sig;
}
return(ct);
}
void enlista_inicio(int x) // Agrega un elemento en la parte inicial de la lista
{
lista *temp;
temp = getlista();
temp->data = x;
temp->sig = NULL;
if (principio == NULL)
principio = temp;
else
{
temp->sig = principio;
principio = temp;
}
}
void enlista_final(int x) // Agrega un elemento en la parte final de la lista
{
lista *temp;
temp = getlista();
temp->data = x;
temp->sig = NULL;
if (principio == NULL)
principio = temp;
else
{
actual = principio;
while (actual != NULL)
{
final = actual;
actual = actual->sig;
}
final->sig = temp;
}
}
void desplegar() //Muestra la lista
{
actual = principio;
if (actual == NULL)
printf("\a\nLa lista esta vacia, Presione Enter para continuar...");
while (actual != NULL)
{
printf("\n %d",actual->data);
actual = actual->sig;
}
getch();
}
#include<conio.h>
#include <windows.h>
#include <stdlib.h>
struct lista {
int data;
struct lista * sig;
};
typedef struct lista lista;
lista * principio,*final,*actual;
lista * getlista();
void enlista_inicio(int x);
void enlista_final(int x);
void enlista_medio(int n_no,int x);
int borrar_lista(int kv);
void ordenar();
void desplegar();
int contar();
main()
{
int ch,n,n_no;
principio = NULL;
do
{
system ("cls") ;
printf("\a\nINFORMATICA II\n");
printf("\n-----Operaciones con listas-----\n");
printf("\n1. Insertar un valor al principio de la lista");
printf("\n2. Desplegar la lista");
printf("\n3. Insertar un valor al final de la lista");
printf("\n4. Insertar un valor despues de un nodo especifico");
printf("\n5. Borrar un nodo de la lista");
printf("\n6. Ordenar la lista\n");
printf("\n-----Creditos-----");
printf("\n\n7. Autores del Programa");
printf("\n8. Salir");
printf("\n\n Elige una opcion: ");
scanf("%d",&ch);
switch (ch)
{
case 1:
printf("\nIngresa el valor a insertar al principio: ");
scanf("%d",&n);
enlista_inicio(n);
break;
case 2:
desplegar();
break;
case 3:
printf("\nIngresa el valor a insertar al final: ");
scanf("%d",&n);
enlista_final(n);
break;
case 4:
printf("\nIngresa el numero de nodo despues del cual quieres insertar un valor: ");
scanf("%d",&n_no);
if ( n_no > contar() )
{
printf("\nNo existen %d nodo(s). Solo hay %d nodo(s) en la lista"
"\n\nPresione Enter para continuar...",n_no,contar());
getch();
}
else
{
printf("\nIngresa el valor a colocar despues del nodo %d: ",n_no);
scanf("%d",&n);
enlista_medio(n_no,n);
}
break;
case 5:
printf("\nIngresa el valor a borrar: ");
scanf("%d",&n);
borrar_lista(n);
break;
case 6:
ordenar();
break;
case 7:
system("cls");
printf("\n -----------------------------------"
"\n|Autores: |\n\n"
"|-----------------------------------|"
"\n|Arango Robles Eleazar |"
"\n|Godoy Saavedra Eduardo |"
"\n|Mobarak Elnecave Antonio |"
"\n|Perez Vazquez Christian Maria Jose |"
"\n ------------------------------------"
"\n\nCopyright, UNAM. Todos los Derechos Reservados"
"\n\nNo apoyamos a la SOPA"
"\n\nPresiona Enter para regresar...");
getch();
break;
}
}
while (ch!=8);
}
void ordenar() //Ordena la lista
{
int temp;
actual = final = principio;
if (principio==NULL)
{
printf("\nLista vacia, Presione Enter para continuar...");
getch();
}
else
{
for (actual=principio;(actual != NULL);actual=actual->sig)
{
for (final=actual->sig;(final != NULL);final=final->sig)
{
if ( actual->data < final->data )
{
temp = final->data;
final->data = actual->data;
actual->data = temp;
}
}
}
printf("\nLa lista esta ordenada, Presione Enter para continuar...");
getch();
}
}
int borrar_lista(int kv) //Borra un elemento de la lista
{
int borrar;
actual = principio;
if (principio == NULL)
{
printf("\a\nLista vacia, Presione Enter para continuar...");
getch();
}
else
{
while ( (actual != NULL) && (actual->data != kv) )
{
final = actual;
actual = actual->sig;
}
if (actual->data == kv)
{
if (actual == principio)
{
borrar = actual->data;
actual = actual->sig;
free(principio);
principio = actual;
}
else
{
borrar = actual->data;
final->sig = actual->sig;
free(actual);
}
printf("\nEl valor %d se ha borrado, Presione Enter para continuar...",kv);
getch();
return(borrar);
}
else
printf("\nEl valor %d no existe, Presione Enter para continuar...",kv);
getch();
}
return(1);
}
void enlista_medio(int n_no,int x) // Agrega un elemento en la parte media de la lista
{
int ct=0;
lista *temp;
temp = getlista();
temp->data = x;
temp->sig = NULL;
actual = principio;
while (ct < n_no )
{
final = actual;
actual = actual->sig;
ct++;
}
if (principio == NULL) principio = temp;
else if (actual == principio)
{
temp->sig = actual;
principio = temp;
}
else
{
temp->sig = final->sig;
final->sig = temp;
}
}
lista * getlista()
{
lista * temp;
temp = (lista *) malloc(sizeof(lista));
if (temp == NULL)
{
printf("\nFalla en la asignacion de memoria, Presione Enter para continuar...");
exit(1);
}
else
return(temp);
}
int contar()
{
int ct=0;
actual = principio;
while (actual != NULL)
{
ct++;
actual = actual->sig;
}
return(ct);
}
void enlista_inicio(int x) // Agrega un elemento en la parte inicial de la lista
{
lista *temp;
temp = getlista();
temp->data = x;
temp->sig = NULL;
if (principio == NULL)
principio = temp;
else
{
temp->sig = principio;
principio = temp;
}
}
void enlista_final(int x) // Agrega un elemento en la parte final de la lista
{
lista *temp;
temp = getlista();
temp->data = x;
temp->sig = NULL;
if (principio == NULL)
principio = temp;
else
{
actual = principio;
while (actual != NULL)
{
final = actual;
actual = actual->sig;
}
final->sig = temp;
}
}
void desplegar() //Muestra la lista
{
actual = principio;
if (actual == NULL)
printf("\a\nLa lista esta vacia, Presione Enter para continuar...");
while (actual != NULL)
{
printf("\n %d",actual->data);
actual = actual->sig;
}
getch();
}
viernes, 13 de enero de 2012
Ejercicio_Cola_Codigo
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
struct colanodo {
char nombre;
struct colanodo *sig;
};
typedef struct colanodo COLA;
typedef COLA *COLAPTR;
void enqueue (COLAPTR *, COLAPTR *, char);
int nohaycola (COLAPTR);
void escribecola (COLAPTR);
void menu(void);
void imprimecola (COLAPTR);
void enqueue (COLAPTR *, COLAPTR *, char);
char dequeue(COLAPTR *);
main ()
{
COLAPTR principio=NULL, final=NULL;
int opcion;
char item;
menu();
printf("\n\n Elige una opcion: ");
fflush(stdin);
scanf ("%d", &opcion);
while (opcion!=4)
{
switch (opcion)
{ case 1: printf ("\n Ingresar el caracter del nodo: ");
fflush(stdin);
scanf ("%c", &item);
enqueue (&principio, &final, item);
escribecola (principio);
printf("\n\n Enter para regresar...");
getch();
menu();
printf ("\n\n Elige una opcion :");
scanf ("%d", &opcion);
break;
case 2: printf ("\n\n Eliminar un elemento de la cola");
fflush(stdin);
dequeue (&principio);
case 3: printf ("\n\n La cola es: ");
fflush(stdin);
imprimecola (principio);
printf("\n\n Enter para regresar...");
getch();
menu();
printf ("\n\n Elige una opcion :");
scanf ("%d", &opcion);
break;
default:printf ("\n\nOpcion NO valida");
printf ("\n\nEnter para continuar");
getch();
system ("cls");
menu();
printf ("\n\n Elige una opcion :");
fflush(stdin);
scanf ("%d", &opcion);
}
}
}
void menu(void) {
system("cls");
printf("\n\n Operaciones disponibles con la Cola");
printf("\n\n 1.- Agregar un elemento a la cola");
printf("\n\n 2.- Eliminar un elemento de la cola");
printf("\n\n 3.- Imprime la cola");
printf("\n\n 4.- Fin");
};
void enqueue (COLAPTR *adela, COLAPTR *atras, char valor)
{
COLAPTR aux=(COLAPTR)malloc(sizeof(COLA));
aux->sig=NULL;
aux->nombre=valor;
if (nohaycola(*adela))
{*adela=aux;
*atras=aux;}
else
{
(*atras)->sig=aux;
*atras=aux;
}
}
int nohaycola (COLAPTR aux)
{
return aux==NULL;
}
void escribecola (COLAPTR aux)
{
if (nohaycola(aux))
printf("\n\nNo hay cola");
else { printf ("\n\n La cola tiene... ");
printf ("\n Principio --> ");
while (aux!=NULL)
{printf("%c <-- ", aux->nombre);
aux=aux->sig;
}
printf("Final de la cola");
}
}
void imprimecola (COLAPTR aux)
{
if (nohaycola(aux))
printf(" No hay cola");
else { printf ("\n Principio --> ");
while (aux!=NULL)
{printf("%c <-- ", aux->nombre);
aux=aux->sig;
}
printf("Final de la cola");
}
}
char dequeue(COLAPTR *adela)
{
COLAPTR aux; char sale;
aux=*adela;
sale=aux->nombre;
*adela=aux->sig;
free(aux);
return (sale);
}
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
struct colanodo {
char nombre;
struct colanodo *sig;
};
typedef struct colanodo COLA;
typedef COLA *COLAPTR;
void enqueue (COLAPTR *, COLAPTR *, char);
int nohaycola (COLAPTR);
void escribecola (COLAPTR);
void menu(void);
void imprimecola (COLAPTR);
void enqueue (COLAPTR *, COLAPTR *, char);
char dequeue(COLAPTR *);
main ()
{
COLAPTR principio=NULL, final=NULL;
int opcion;
char item;
menu();
printf("\n\n Elige una opcion: ");
fflush(stdin);
scanf ("%d", &opcion);
while (opcion!=4)
{
switch (opcion)
{ case 1: printf ("\n Ingresar el caracter del nodo: ");
fflush(stdin);
scanf ("%c", &item);
enqueue (&principio, &final, item);
escribecola (principio);
printf("\n\n Enter para regresar...");
getch();
menu();
printf ("\n\n Elige una opcion :");
scanf ("%d", &opcion);
break;
case 2: printf ("\n\n Eliminar un elemento de la cola");
fflush(stdin);
dequeue (&principio);
case 3: printf ("\n\n La cola es: ");
fflush(stdin);
imprimecola (principio);
printf("\n\n Enter para regresar...");
getch();
menu();
printf ("\n\n Elige una opcion :");
scanf ("%d", &opcion);
break;
default:printf ("\n\nOpcion NO valida");
printf ("\n\nEnter para continuar");
getch();
system ("cls");
menu();
printf ("\n\n Elige una opcion :");
fflush(stdin);
scanf ("%d", &opcion);
}
}
}
void menu(void) {
system("cls");
printf("\n\n Operaciones disponibles con la Cola");
printf("\n\n 1.- Agregar un elemento a la cola");
printf("\n\n 2.- Eliminar un elemento de la cola");
printf("\n\n 3.- Imprime la cola");
printf("\n\n 4.- Fin");
};
void enqueue (COLAPTR *adela, COLAPTR *atras, char valor)
{
COLAPTR aux=(COLAPTR)malloc(sizeof(COLA));
aux->sig=NULL;
aux->nombre=valor;
if (nohaycola(*adela))
{*adela=aux;
*atras=aux;}
else
{
(*atras)->sig=aux;
*atras=aux;
}
}
int nohaycola (COLAPTR aux)
{
return aux==NULL;
}
void escribecola (COLAPTR aux)
{
if (nohaycola(aux))
printf("\n\nNo hay cola");
else { printf ("\n\n La cola tiene... ");
printf ("\n Principio --> ");
while (aux!=NULL)
{printf("%c <-- ", aux->nombre);
aux=aux->sig;
}
printf("Final de la cola");
}
}
void imprimecola (COLAPTR aux)
{
if (nohaycola(aux))
printf(" No hay cola");
else { printf ("\n Principio --> ");
while (aux!=NULL)
{printf("%c <-- ", aux->nombre);
aux=aux->sig;
}
printf("Final de la cola");
}
}
char dequeue(COLAPTR *adela)
{
COLAPTR aux; char sale;
aux=*adela;
sale=aux->nombre;
*adela=aux->sig;
free(aux);
return (sale);
}
miércoles, 11 de enero de 2012
ejercicio_pila_codigo
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
struct pilanodo {
int dato;
struct pilanodo *sig;
};
typedef struct pilanodo PILA;
typedef PILA *PILAPTR;
void menu(void);
void push(PILAPTR *, int);
int pop(PILAPTR *);
int vacia (PILAPTR);
void imprime (PILAPTR);
main()
{ PILAPTR pilaptr = NULL;
int opcion;
int valor;
menu();
printf ("\n\n Selecciona una de las siguientes opciones:");
scanf ("%d", &opcion);
while (opcion!= 4)
{switch (opcion)
{case 1: printf ("\n\n Dame el valor del elemento a guardar: ");
scanf ("%d", &valor);
push (&pilaptr, valor);
menu();
printf ("\n\n Elige una opcion :");
scanf ("%d", &opcion);
break;
case 2: if(!vacia(pilaptr))
printf("\n\n El valor extraido de la pila es %d", pop(&pilaptr));
case 3: imprime(pilaptr);
menu();
printf ("\n\n Elige una opcion :");
scanf ("%d", &opcion);
break;
default : printf("\n\n Ingresaste un numero no valido\n\n");
printf("\n\n || Por favor reinicie el programa ||\n\n");
getch();
}
}
}
void menu(void) {
system("cls");
printf("\n\n Operaciones disponibles con la Pila");
printf("\n\n 1.- Agregar un elemento a la pila");
printf("\n\n 2.- Eliminar un elemento a la pila");
printf("\n\n 3.- Recorrer la pila");
printf("\n\n 4.- Fin");
};
void push(PILAPTR *aux, int valor)
{PILAPTR aux1;
aux1=((PILAPTR)malloc(sizeof (PILA)));
if(aux1!=NULL)
{ aux1->dato = valor;
aux1->sig = NULL;
if(*aux==NULL)
*aux=aux1;
else{ aux1->sig = *aux;
*aux = aux1;
}
}
else printf ("\n\n No se creo el nodo por que no hay memoria suficiente");
}
int pop(PILAPTR *aux)
{ PILAPTR aux1; int sale;
aux1 = *aux;
*aux = aux1 -> sig;
sale = aux1->dato;
free(aux1);
return (sale);
}
int vacia(PILAPTR aux){
return aux==NULL;
}
void imprime(PILAPTR aux)
{ if (aux == NULL)
printf("\n || La pila esta vacia || \n\n");
else
{ printf("\n La pila es: \n\n");
printf("\n\n Tope");
while (aux != NULL)
{ printf("\n %4d", aux->dato);
aux = aux->sig;
}
printf("\n Fondo\n\n");
}
printf("\n\n Enter para regresar...");
getch();
}
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
struct pilanodo {
int dato;
struct pilanodo *sig;
};
typedef struct pilanodo PILA;
typedef PILA *PILAPTR;
void menu(void);
void push(PILAPTR *, int);
int pop(PILAPTR *);
int vacia (PILAPTR);
void imprime (PILAPTR);
main()
{ PILAPTR pilaptr = NULL;
int opcion;
int valor;
menu();
printf ("\n\n Selecciona una de las siguientes opciones:");
scanf ("%d", &opcion);
while (opcion!= 4)
{switch (opcion)
{case 1: printf ("\n\n Dame el valor del elemento a guardar: ");
scanf ("%d", &valor);
push (&pilaptr, valor);
menu();
printf ("\n\n Elige una opcion :");
scanf ("%d", &opcion);
break;
case 2: if(!vacia(pilaptr))
printf("\n\n El valor extraido de la pila es %d", pop(&pilaptr));
case 3: imprime(pilaptr);
menu();
printf ("\n\n Elige una opcion :");
scanf ("%d", &opcion);
break;
default : printf("\n\n Ingresaste un numero no valido\n\n");
printf("\n\n || Por favor reinicie el programa ||\n\n");
getch();
}
}
}
void menu(void) {
system("cls");
printf("\n\n Operaciones disponibles con la Pila");
printf("\n\n 1.- Agregar un elemento a la pila");
printf("\n\n 2.- Eliminar un elemento a la pila");
printf("\n\n 3.- Recorrer la pila");
printf("\n\n 4.- Fin");
};
void push(PILAPTR *aux, int valor)
{PILAPTR aux1;
aux1=((PILAPTR)malloc(sizeof (PILA)));
if(aux1!=NULL)
{ aux1->dato = valor;
aux1->sig = NULL;
if(*aux==NULL)
*aux=aux1;
else{ aux1->sig = *aux;
*aux = aux1;
}
}
else printf ("\n\n No se creo el nodo por que no hay memoria suficiente");
}
int pop(PILAPTR *aux)
{ PILAPTR aux1; int sale;
aux1 = *aux;
*aux = aux1 -> sig;
sale = aux1->dato;
free(aux1);
return (sale);
}
int vacia(PILAPTR aux){
return aux==NULL;
}
void imprime(PILAPTR aux)
{ if (aux == NULL)
printf("\n || La pila esta vacia || \n\n");
else
{ printf("\n La pila es: \n\n");
printf("\n\n Tope");
while (aux != NULL)
{ printf("\n %4d", aux->dato);
aux = aux->sig;
}
printf("\n Fondo\n\n");
}
printf("\n\n Enter para regresar...");
getch();
}
jueves, 5 de enero de 2012
Examen_1.2
EXAMEN PARCIAL 1 - INFORMATICA II CURSO INTERSEMESTRAL 2012-2
-------------------------------------------------------------
Arango Robles Eleazar
Godoy Saavedra Luis Eduardo
Martínez Camarena Homero
Mobarak Elnecave Antonio
Pérez Vázquez Christian
6. Haga la abstracción de un sistema de información (libre elección).
Diseñe una estructura de datos para ese sistema de información.
Elabore un programa en C, que solicite los datos para almacenarlos en esa estructura,
y que los despliegue en pantalla. (valor 5 puntos)
#include <conio.h>
#include <stdio.h>
struct unam
{ int cuenta;
char nombre[100];
char gen[3];
char rfc[11];
char clv_facu[4];
char sem[3];
};
struct unam alumno;
void captura()
{ printf("\n\nIngresa los datos solicitados:\n\n");
printf("\n CUENTA : ");
scanf("%d", &alumno.cuenta);
printf("\n NOMBRE COMPLETO (Separados por guión bajo): ");
scanf("%s", alumno.nombre);
printf("\n GENERO : ");
scanf("%s", alumno.gen);
printf("\n R.F.C. : ");
scanf("%s", alumno.rfc);
printf("\n CLAVE FACULTAD : ");
scanf("%s", alumno.clv_facu);
printf("\n SEMESTRE : ");
scanf("%s", &alumno.sem);
printf("\n\n Presiona Intro para guardar los datos...");
getch();
}
void escribe()
{ system("cls");
printf("\n\nEstos son los datos que ingresaste:\n\n");
printf("\n CUENTA : %d", alumno.cuenta);
printf("\n \n NOMBRE COMPLETO : %s", alumno.nombre);
printf("\n \n GENERO : %s", alumno.gen);
printf("\n \n R.F.C. : %s", alumno.rfc);
printf("\n \n CLAVE FACULTAD : %s", alumno.clv_facu);
printf("\n \n SEMESTRE : %s", &alumno.sem);
printf("\n\nOprime Intro para salir...");
getch();
}
main()
{ system("cls");
printf("\nUNAM Copyright");
captura();
escribe();
}
-------------------------------------------------------------
Arango Robles Eleazar
Godoy Saavedra Luis Eduardo
Martínez Camarena Homero
Mobarak Elnecave Antonio
Pérez Vázquez Christian
6. Haga la abstracción de un sistema de información (libre elección).
Diseñe una estructura de datos para ese sistema de información.
Elabore un programa en C, que solicite los datos para almacenarlos en esa estructura,
y que los despliegue en pantalla. (valor 5 puntos)
#include <conio.h>
#include <stdio.h>
struct unam
{ int cuenta;
char nombre[100];
char gen[3];
char rfc[11];
char clv_facu[4];
char sem[3];
};
struct unam alumno;
void captura()
{ printf("\n\nIngresa los datos solicitados:\n\n");
printf("\n CUENTA : ");
scanf("%d", &alumno.cuenta);
printf("\n NOMBRE COMPLETO (Separados por guión bajo): ");
scanf("%s", alumno.nombre);
printf("\n GENERO : ");
scanf("%s", alumno.gen);
printf("\n R.F.C. : ");
scanf("%s", alumno.rfc);
printf("\n CLAVE FACULTAD : ");
scanf("%s", alumno.clv_facu);
printf("\n SEMESTRE : ");
scanf("%s", &alumno.sem);
printf("\n\n Presiona Intro para guardar los datos...");
getch();
}
void escribe()
{ system("cls");
printf("\n\nEstos son los datos que ingresaste:\n\n");
printf("\n CUENTA : %d", alumno.cuenta);
printf("\n \n NOMBRE COMPLETO : %s", alumno.nombre);
printf("\n \n GENERO : %s", alumno.gen);
printf("\n \n R.F.C. : %s", alumno.rfc);
printf("\n \n CLAVE FACULTAD : %s", alumno.clv_facu);
printf("\n \n SEMESTRE : %s", &alumno.sem);
printf("\n\nOprime Intro para salir...");
getch();
}
main()
{ system("cls");
printf("\nUNAM Copyright");
captura();
escribe();
}
examen_1
EXAMEN PARCIAL 1 - INFORMATICA II CURSO INTERSEMESTRAL 2012-2
-------------------------------------------------------------
Arango Robles Eleazar
Godoy Saavedra Luis Eduardo
Martínez Camarena Homero
Mobarak Elnecave Antonio
Pérez Vázquez Christian
1. Que es una Estructura de Datos? (valor 1 punto)
Es una coleccion ordenada de datos organizados de tal manera que tengan asociados un conjunto de
operaciones que permitan manipularlos
2. Para que sirve una estructura de datos? (valor 1 punto)
Nos ayuda en el almacenamiento, tratamiento y manipulacion de la informacion (datos)
3. Para que se utilizan los apuntadores en Estructuras de datos dinámicas? (valor 1 punto)
los apuntadores son objetos especiales de C, su valor es una direccion de memoria, con los cuales
se logra el redireccionamientos de la informacion
4. En que consiste la Abstracción de Datos? (valor 1 punto)
Es una tecnica que nos permite diseñar estructuras de datos,
esta, nos ayuda a representar las caracteristicas escenciales de una estructura mediante varios criterios
5. Qué es un tipo de Datos Abstracto? (valor 1 punto)
es un modelo matermatico para cierto tipo de clases de estructuras de datos que tienen comportaientos similares o para cierto tipo de datos de uno o mas lenguajes de programacion con semanticas similares
Ej: pilas y colas
-------------------------------------------------------------
Arango Robles Eleazar
Godoy Saavedra Luis Eduardo
Martínez Camarena Homero
Mobarak Elnecave Antonio
Pérez Vázquez Christian
1. Que es una Estructura de Datos? (valor 1 punto)
Es una coleccion ordenada de datos organizados de tal manera que tengan asociados un conjunto de
operaciones que permitan manipularlos
2. Para que sirve una estructura de datos? (valor 1 punto)
Nos ayuda en el almacenamiento, tratamiento y manipulacion de la informacion (datos)
3. Para que se utilizan los apuntadores en Estructuras de datos dinámicas? (valor 1 punto)
los apuntadores son objetos especiales de C, su valor es una direccion de memoria, con los cuales
se logra el redireccionamientos de la informacion
4. En que consiste la Abstracción de Datos? (valor 1 punto)
Es una tecnica que nos permite diseñar estructuras de datos,
esta, nos ayuda a representar las caracteristicas escenciales de una estructura mediante varios criterios
5. Qué es un tipo de Datos Abstracto? (valor 1 punto)
es un modelo matermatico para cierto tipo de clases de estructuras de datos que tienen comportaientos similares o para cierto tipo de datos de uno o mas lenguajes de programacion con semanticas similares
Ej: pilas y colas
Suscribirse a:
Entradas (Atom)






















