Lista de Nodos Lista de Arcos
jueves, 26 de enero de 2012
CORREOS y NOMBRES
Avalos Vite Erick David edav_blink182@hotmail.com
Rodríguez Páez Luz Angélica larp_bioz@hotmail.com
Santiago Díaz Krysther Israel krysther@hotmail.com
Martínez Baca Eric Omar omiwomi81@hotmail.com
Rodríguez Páez Luz Angélica larp_bioz@hotmail.com
Santiago Díaz Krysther Israel krysther@hotmail.com
Martínez Baca Eric Omar omiwomi81@hotmail.com
martes, 24 de enero de 2012
arbol
#include <stdlib.h>
#include <stdio.h>
struct arbol{
struct arbol *izq;
int dato;
struct arbol *der;
};// se declara la estructura albol
typedef struct arbol ARBOL; // se le da un pseudonimo
typedef ARBOL *ARBOLPTR;
void imprimir(ARBOLPTR); // se declaran aplicaciones
void insertar(ARBOLPTR *, int);
void menu(void);
main() // se declara la funcion main
{
ARBOLPTR raiz = NULL;
int opcion, item;
menu();
printf("\n Elige opcion: \n");
scanf("%d",&opcion);
while (opcion != 4){ // se declara el ciclo para repetir menu
switch(opcion)
{ case 1: printf("\n Ingresa el valor : \n");
scanf("%d", &item);
if (encontrarArbol(raiz, item) == 1)
{ printf("\n El numero: %d,ya fue ingresado");
printf("\n ");
printf("\n\n Presiona enter para continuar");
getch();
}
else insertar(&raiz, item);
break;
case 2: if (raiz == NULL)
{ printf("\nEsta vacio ingresa un numero primero");
}
else imprimir(raiz);
printf("\n\nEnter para continuar\n");
getch();
break;
case 3: printf("Digite el elemento a buscar: \n");
scanf ("%d", &item);
if (encontrarArbol(raiz, item) == 0)
printf("no se encuentra el valor\n");
else
printf ("El valor %d esta en el nivel:",item);
imprimir (raiz);
getch();
break;
default : printf("opcion invalida \n\n");
getch();
menu();
}
menu();
printf("\nElige opcion: ");
scanf("%d",&opcion);
}
getch();
}
void menu(void)
{ system("cls");
printf("\n\t" " *******OPERACIONES DISPONIBLES EN EL ARBOL*****\n\n\n"
" 1 INSERTA UN ELEMENTO\n"
" 2 IMPRIMIR EL ARBOL\n"
" 3 BUSQUEDA \n"
" 4 SALIR DEL PROGRAMA\n");
}
int encontrarArbol(ARBOLPTR aux, int valor)//esta funcion permita buscar
{ while (aux != NULL) //un numero en la lista
{ if (valor < aux->dato)
{ aux = aux->izq;
continue;}// vuelve entrar a while mientars aux sea diferente de uno
if (valor > aux->dato)
{ aux = aux->der;
continue;}
if (valor == aux->dato)
return 1;
}
return 0;
}
void insertar(ARBOLPTR *raiz, int valor)
{ ARBOLPTR aux1, aux2, aux3= NULL;
aux1 = (ARBOLPTR) malloc(sizeof(ARBOL));//busca un area de memoria que tenga la estructura de arbol
if (aux1 != NULL)
{aux1->dato = valor;//asigna el valor
aux1->izq = NULL;// asigna nulo
aux1->der = NULL;// asigna nulo
aux2 = *raiz;// se le va asignar el valor de la variable que esta apuntada por raiz
while (aux2 != NULL)
{aux3 = aux2;
if (valor < aux2->dato)// si es menor se va por el else
aux2 = aux2->izq;
else
aux2 = aux2->der;// se le asigna al propio aux2
}
if (aux3 == NULL)// no es nulo se va por raiz
*raiz = aux1;
else
{if (valor < aux3->dato)
aux3->izq = aux1;
else
aux3->der = aux1;
}
}
}
void imprimir(ARBOLPTR aux1)
{ ARBOLPTR aux2;
if (aux1 != NULL) // si el apuntador aux1 es diferente a nulo va imprimir el caracter asiganado
{printf("\n\n raiz= %d", aux1->dato);
aux2= aux1->izq;
if (aux2 != NULL)
printf("\tizquierdo: %d", aux2->dato);
else printf("\tizquierdo NULO");
imprimir(aux2);
aux2= aux1->der;
if (aux2 != NULL)
printf("\tderecho: %d", aux2->dato);
else printf("\tderecho NULO");
imprimir(aux2);
}
}
#include <stdio.h>
struct arbol{
struct arbol *izq;
int dato;
struct arbol *der;
};// se declara la estructura albol
typedef struct arbol ARBOL; // se le da un pseudonimo
typedef ARBOL *ARBOLPTR;
void imprimir(ARBOLPTR); // se declaran aplicaciones
void insertar(ARBOLPTR *, int);
void menu(void);
main() // se declara la funcion main
{
ARBOLPTR raiz = NULL;
int opcion, item;
menu();
printf("\n Elige opcion: \n");
scanf("%d",&opcion);
while (opcion != 4){ // se declara el ciclo para repetir menu
switch(opcion)
{ case 1: printf("\n Ingresa el valor : \n");
scanf("%d", &item);
if (encontrarArbol(raiz, item) == 1)
{ printf("\n El numero: %d,ya fue ingresado");
printf("\n ");
printf("\n\n Presiona enter para continuar");
getch();
}
else insertar(&raiz, item);
break;
case 2: if (raiz == NULL)
{ printf("\nEsta vacio ingresa un numero primero");
}
else imprimir(raiz);
printf("\n\nEnter para continuar\n");
getch();
break;
case 3: printf("Digite el elemento a buscar: \n");
scanf ("%d", &item);
if (encontrarArbol(raiz, item) == 0)
printf("no se encuentra el valor\n");
else
printf ("El valor %d esta en el nivel:",item);
imprimir (raiz);
getch();
break;
default : printf("opcion invalida \n\n");
getch();
menu();
}
menu();
printf("\nElige opcion: ");
scanf("%d",&opcion);
}
getch();
}
void menu(void)
{ system("cls");
printf("\n\t" " *******OPERACIONES DISPONIBLES EN EL ARBOL*****\n\n\n"
" 1 INSERTA UN ELEMENTO\n"
" 2 IMPRIMIR EL ARBOL\n"
" 3 BUSQUEDA \n"
" 4 SALIR DEL PROGRAMA\n");
}
int encontrarArbol(ARBOLPTR aux, int valor)//esta funcion permita buscar
{ while (aux != NULL) //un numero en la lista
{ if (valor < aux->dato)
{ aux = aux->izq;
continue;}// vuelve entrar a while mientars aux sea diferente de uno
if (valor > aux->dato)
{ aux = aux->der;
continue;}
if (valor == aux->dato)
return 1;
}
return 0;
}
void insertar(ARBOLPTR *raiz, int valor)
{ ARBOLPTR aux1, aux2, aux3= NULL;
aux1 = (ARBOLPTR) malloc(sizeof(ARBOL));//busca un area de memoria que tenga la estructura de arbol
if (aux1 != NULL)
{aux1->dato = valor;//asigna el valor
aux1->izq = NULL;// asigna nulo
aux1->der = NULL;// asigna nulo
aux2 = *raiz;// se le va asignar el valor de la variable que esta apuntada por raiz
while (aux2 != NULL)
{aux3 = aux2;
if (valor < aux2->dato)// si es menor se va por el else
aux2 = aux2->izq;
else
aux2 = aux2->der;// se le asigna al propio aux2
}
if (aux3 == NULL)// no es nulo se va por raiz
*raiz = aux1;
else
{if (valor < aux3->dato)
aux3->izq = aux1;
else
aux3->der = aux1;
}
}
}
void imprimir(ARBOLPTR aux1)
{ ARBOLPTR aux2;
if (aux1 != NULL) // si el apuntador aux1 es diferente a nulo va imprimir el caracter asiganado
{printf("\n\n raiz= %d", aux1->dato);
aux2= aux1->izq;
if (aux2 != NULL)
printf("\tizquierdo: %d", aux2->dato);
else printf("\tizquierdo NULO");
imprimir(aux2);
aux2= aux1->der;
if (aux2 != NULL)
printf("\tderecho: %d", aux2->dato);
else printf("\tderecho NULO");
imprimir(aux2);
}
}
programa estructura de arbol
#include <stdlib.h>
#include <stdio.h>
struct arbol{
struct arbol *izq;
int dato;
struct arbol *der;
};// se declara la estructura albol
typedef struct arbol ARBOL; // se le da un pseudonimo
typedef ARBOL *ARBOLPTR;
void imprimir(ARBOLPTR); // se declaran aplicaciones
void insertar(ARBOLPTR *, int);
void menu(void);
main() // se declara la funcion main
{ ARBOLPTR raiz = NULL;
int opcion, item;
menu();
printf("\n elige opcion: \n");
scanf("%d",&opcion);
while (opcion != 3){ // se declara el ciclo para repetir menu
switch(opcion)
{ case 1: printf("\n Ingresa el valor : \n");
scanf("%d", &item);
if (encontrarArbol(raiz, item) == 1)
{ printf("\n El numero: %d,ya fue ingresado");
printf("\n ");
printf("\n\n Presiona enter para continuar");
getch();
}
else insertar(&raiz, item);
break;
case 2: if (raiz == NULL)
{ printf("\nEsta vacio ingresa un numero primero");
}
else imprimir(raiz);
printf("\n\nEnter para continuar\n");
getch();
break;
default : printf("opcion invalida \n\n");
getch();
menu();
}
menu();
printf("\nElige opcion: ");
scanf("%d",&opcion);
}
getch();
}
void menu(void)
{ system("cls");
printf("\n\n" " *******OPERACIONES DISPONIBLES EN EL ARBOL*****\n"
" 1 INSERTA UN ELEMENTO\n"
" 2 IMPRIMIR EL ARBOL\n"
" 3 SALIR DEL PROGRAMA\n");
}
int encontrarArbol(ARBOLPTR aux, int valor)//esta funcion permita buscar
{ while (aux != NULL) //un numero en la lista
{ if (valor < aux->dato)
{ aux = aux->izq;
continue;}// vuelve entrar a while mientars aux sea diferente de uno
if (valor > aux->dato)
{ aux = aux->der;
continue;}
if (valor == aux->dato)
return 1;
}
return 0;
}
void insertar(ARBOLPTR *raiz, int valor)
{ ARBOLPTR aux1, aux2, aux3= NULL;
aux1 = (ARBOLPTR) malloc(sizeof(ARBOL));//busca un area de memoria que tenga la estructura de arbol
if (aux1 != NULL)
{aux1->dato = valor;//asigna el valor
aux1->izq = NULL;// asigna nulo
aux1->der = NULL;// asigna nulo
aux2 = *raiz;// se le va asignar el valor de la variable que esta apuntada por raiz
while (aux2 != NULL)
{aux3 = aux2;
if (valor < aux2->dato)// si es menor se va por el else
aux2 = aux2->izq;
else
aux2 = aux2->der;// se le asigna al propio aux2
}
if (aux3 == NULL)// no es nulo se va por raiz
*raiz = aux1;
else
{if (valor < aux3->dato)
aux3->izq = aux1;
else
aux3->der = aux1;
}
}
}
void imprimir(ARBOLPTR aux1)
{ ARBOLPTR aux2;
if (aux1 != NULL) // si el apuntador aux1 es diferente a nulo va imprimir el caracter asiganado
{printf("\n\n raiz= %d", aux1->dato);
aux2= aux1->izq;
if (aux2 != NULL)
printf("\tizquierdo: %d", aux2->dato);
else printf("\tizquierdo NULO");
imprimir(aux2);
aux2= aux1->der;
if (aux2 != NULL)
printf("\tderecho: %d", aux2->dato);
else printf("\tderecho NULO");
imprimir(aux2);
}
}
#include <stdio.h>
struct arbol{
struct arbol *izq;
int dato;
struct arbol *der;
};// se declara la estructura albol
typedef struct arbol ARBOL; // se le da un pseudonimo
typedef ARBOL *ARBOLPTR;
void imprimir(ARBOLPTR); // se declaran aplicaciones
void insertar(ARBOLPTR *, int);
void menu(void);
main() // se declara la funcion main
{ ARBOLPTR raiz = NULL;
int opcion, item;
menu();
printf("\n elige opcion: \n");
scanf("%d",&opcion);
while (opcion != 3){ // se declara el ciclo para repetir menu
switch(opcion)
{ case 1: printf("\n Ingresa el valor : \n");
scanf("%d", &item);
if (encontrarArbol(raiz, item) == 1)
{ printf("\n El numero: %d,ya fue ingresado");
printf("\n ");
printf("\n\n Presiona enter para continuar");
getch();
}
else insertar(&raiz, item);
break;
case 2: if (raiz == NULL)
{ printf("\nEsta vacio ingresa un numero primero");
}
else imprimir(raiz);
printf("\n\nEnter para continuar\n");
getch();
break;
default : printf("opcion invalida \n\n");
getch();
menu();
}
menu();
printf("\nElige opcion: ");
scanf("%d",&opcion);
}
getch();
}
void menu(void)
{ system("cls");
printf("\n\n" " *******OPERACIONES DISPONIBLES EN EL ARBOL*****\n"
" 1 INSERTA UN ELEMENTO\n"
" 2 IMPRIMIR EL ARBOL\n"
" 3 SALIR DEL PROGRAMA\n");
}
int encontrarArbol(ARBOLPTR aux, int valor)//esta funcion permita buscar
{ while (aux != NULL) //un numero en la lista
{ if (valor < aux->dato)
{ aux = aux->izq;
continue;}// vuelve entrar a while mientars aux sea diferente de uno
if (valor > aux->dato)
{ aux = aux->der;
continue;}
if (valor == aux->dato)
return 1;
}
return 0;
}
void insertar(ARBOLPTR *raiz, int valor)
{ ARBOLPTR aux1, aux2, aux3= NULL;
aux1 = (ARBOLPTR) malloc(sizeof(ARBOL));//busca un area de memoria que tenga la estructura de arbol
if (aux1 != NULL)
{aux1->dato = valor;//asigna el valor
aux1->izq = NULL;// asigna nulo
aux1->der = NULL;// asigna nulo
aux2 = *raiz;// se le va asignar el valor de la variable que esta apuntada por raiz
while (aux2 != NULL)
{aux3 = aux2;
if (valor < aux2->dato)// si es menor se va por el else
aux2 = aux2->izq;
else
aux2 = aux2->der;// se le asigna al propio aux2
}
if (aux3 == NULL)// no es nulo se va por raiz
*raiz = aux1;
else
{if (valor < aux3->dato)
aux3->izq = aux1;
else
aux3->der = aux1;
}
}
}
void imprimir(ARBOLPTR aux1)
{ ARBOLPTR aux2;
if (aux1 != NULL) // si el apuntador aux1 es diferente a nulo va imprimir el caracter asiganado
{printf("\n\n raiz= %d", aux1->dato);
aux2= aux1->izq;
if (aux2 != NULL)
printf("\tizquierdo: %d", aux2->dato);
else printf("\tizquierdo NULO");
imprimir(aux2);
aux2= aux1->der;
if (aux2 != NULL)
printf("\tderecho: %d", aux2->dato);
else printf("\tderecho NULO");
imprimir(aux2);
}
}
lunes, 23 de enero de 2012
FUNCIÓN RECURSIVA Santiago Diaz Krysther Israel
/*Santiago Diaz Krysther Israel*/
/*INFORMÁTICA II - INTERSEMESTRAL*/
#include<stdio.h>/*Declaracion de bibliotecas*/
#include<stdlib.h>
long fact(long);/*Prototipo de la función, se usa long como tipo de dato para mayor rango de valores aceptados*/
main()/*Inicio del programa*/
{
int num;/*Declaración de variables*/
printf("\n\nDame un numero mayor a 1: ");/*Pedimos un numero al usuario*/
scanf("%d", &num);/*el numero se toma del teclado y se almacena en num*/
system("cls");/*Se limpia la pantalla*/
printf("\n\n\n\tEl factorial del numero %d! es: %d", num, fact(num));/*se imprime el resultado*/
getch();
}
long fact(long n)/*Definición de la función fact*/
{
if(n <= 1)/*si el valor introducido es 1 se regresa un uno a la pantalla*/
return 1;
else/*cualquier otro valor diferente de 1 entrara en la funcion que se llamara asi mis misma hasta que sea 1*/
return(n * fact(n - 1));
}
/*INFORMÁTICA II - INTERSEMESTRAL*/
#include<stdio.h>/*Declaracion de bibliotecas*/
#include<stdlib.h>
long fact(long);/*Prototipo de la función, se usa long como tipo de dato para mayor rango de valores aceptados*/
main()/*Inicio del programa*/
{
int num;/*Declaración de variables*/
printf("\n\nDame un numero mayor a 1: ");/*Pedimos un numero al usuario*/
scanf("%d", &num);/*el numero se toma del teclado y se almacena en num*/
system("cls");/*Se limpia la pantalla*/
printf("\n\n\n\tEl factorial del numero %d! es: %d", num, fact(num));/*se imprime el resultado*/
getch();
}
long fact(long n)/*Definición de la función fact*/
{
if(n <= 1)/*si el valor introducido es 1 se regresa un uno a la pantalla*/
return 1;
else/*cualquier otro valor diferente de 1 entrara en la funcion que se llamara asi mis misma hasta que sea 1*/
return(n * fact(n - 1));
}
programa factorial (Erick David avalos vite)
/*
Name: factroial intersemestral fca
Copyright:
Author: Erick David avalos
Date: 23/01/12 20:53
Description: este programa realiza el factorial de numeros enteros
*/
#include <stdio.h>
#include <stdlib.h>
int factorial(int num);// se declara la funcion factorial
int main(){
int num;
system("cls");
printf("Ingresa un entero \n");// se ingresa un numero de tipo entero
scanf("%d",&num);
printf("El fatorial es: %d\n", factorial(num));
getch();
}
int factorial(int num){ // funcion recursiva
if (num<2)
return 1;// si el numero ingresdo es mayor a 2 se regresa 1
else
return num * factorial(num-1); }/* de caso contrario se multiplica el numero por
la funcion factorial y se le restara 1*/
Name: factroial intersemestral fca
Copyright:
Author: Erick David avalos
Date: 23/01/12 20:53
Description: este programa realiza el factorial de numeros enteros
*/
#include <stdio.h>
#include <stdlib.h>
int factorial(int num);// se declara la funcion factorial
int main(){
int num;
system("cls");
printf("Ingresa un entero \n");// se ingresa un numero de tipo entero
scanf("%d",&num);
printf("El fatorial es: %d\n", factorial(num));
getch();
}
int factorial(int num){ // funcion recursiva
if (num<2)
return 1;// si el numero ingresdo es mayor a 2 se regresa 1
else
return num * factorial(num-1); }/* de caso contrario se multiplica el numero por
la funcion factorial y se le restara 1*/
domingo, 22 de enero de 2012
Recursividad (Factorial)
/*Rodriguez Paez Luz Angelica*/
#include <stdio.h>
#include <conio.h>
int factorial(int n);
int main (){
int num;
char res;
printf("** FACTORIAL ** \n\n");
do
{
int num;
printf("Ingrese un numero: ");
scanf("%i",&num);
printf("\tEl resultado es: %i\n", factorial(num));
{
printf("\n\n hacer otravez?(s/n) \n");}
scanf("%s",&res);
} while(res == 's');
getch();
}
int factorial(int n){
if(n<=1)
return 1;
else
return n * factorial(n-1);
}
#include <stdio.h>
#include <conio.h>
int factorial(int n);
int main (){
int num;
char res;
printf("** FACTORIAL ** \n\n");
do
{
int num;
printf("Ingrese un numero: ");
scanf("%i",&num);
printf("\tEl resultado es: %i\n", factorial(num));
{
printf("\n\n hacer otravez?(s/n) \n");}
scanf("%s",&res);
} while(res == 's');
getch();
}
int factorial(int n){
if(n<=1)
return 1;
else
return n * factorial(n-1);
}
//Martinez Baca Eric Omar
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int factorial(int);
int numero;
main(){
system("cls");
printf("\n\nEscriba el numero del cual desea saber el factorial: ");
scanf("%d", &numero);
printf("\n\nEl resultado es: %d ", factorial(numero) );
getch();
}
int factorial(int Num){
if(Num == 1)
return Num;
return Num * factorial(Num-1);
}
martes, 17 de enero de 2012
Examen 2
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
#include <string.h>
struct lista1 {
char nombre [30];
struct lista1 *sig;
};
typedef struct lista1 LISTA;
typedef LISTA *LISTAPTR;
void menu();//declarar funciones
void insertar (LISTAPTR*,char[]);
char eliminar(LISTAPTR*,char[]);
void imprimir(LISTAPTR);
int estavacia(LISTAPTR);
main(){
LISTAPTR principio = NULL;
LISTAPTR final = NULL;
int opcion;
char item[30];
do{
menu();
printf("\n\n\n\tSelecciona una opcion: ");
scanf("%d", &opcion);
switch(opcion){
case 1:
fflush(stdin);
system("cls");
printf("\n\n\tIngresa un nombre : ");
scanf("%s", item);
insertar (&final,item);
imprimir(final);
break;
case 2:
imprimir(final);
getch();
break;
case 3:
if (estavacia(principio)){
printf ("imprimir la cadena a eliminar: ");
scanf("\n%s ", item);
if(eliminar(&principio,item)){
printf("%s Eliminado.\n" ,item);
}
else
printf ("%s no se encontro.\n\n",item);
}
else
printf("La lista esta vacia\n\n");
break;
}
getch();
}while(opcion!=4);
getch();
}
void menu(){
system("cls");
printf("\n\n\t\t*** FILA ***");
printf("\n\t\t1)Insertar un miembro en la fila.");
printf("\n\t\t2)Imprimir la fila.");
printf("\n\t\t3)eliminar una fila");
printf("\n\t\t4)Salir.");
}
void insertar (LISTAPTR *sptr, char caracter[]){
LISTAPTR nuevo,principio,final;
nuevo = malloc (sizeof(LISTA));
if(nuevo != NULL)
{
strcpy( nuevo -> nombre,caracter);
nuevo -> sig = NULL;
principio=NULL;
final=*sptr;
while (final!=NULL && strcmp(caracter, final->nombre) > 0 ){
principio=final;
final=final->sig;
}
if (principio == NULL){
nuevo->sig=*sptr;
*sptr=nuevo;
}
else{
principio->sig=nuevo;
nuevo->sig=final;
}
}
}
void imprimir(LISTAPTR final)
{
if (final == NULL)
printf (" La lista esta vacia");
else {
printf("la lista es :\n");
while (final!=NULL){
printf (" %s \n",final->nombre);
final=final->sig;
}
}
}
char eliminar(LISTAPTR *sptr,char valor[]){
LISTAPTR principio,final,aux1;
if (valor==(*sptr)->nombre){
aux1=*sptr;
*sptr=(*sptr)->sig;
free(aux1);
return valor;
}
else{
principio=*sptr;
final = (*sptr)->sig;
while (final != NULL && final -> nombre!=valor){
principio = final;
final=final->sig;
}
if(final!=NULL){
aux1 =final;
principio->sig=final->sig;
free(aux1);
return valor;
}
}
return '\0';
}
int estavacia(LISTAPTR sptr){
return sptr==NULL;
}
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
#include <string.h>
struct lista1 {
char nombre [30];
struct lista1 *sig;
};
typedef struct lista1 LISTA;
typedef LISTA *LISTAPTR;
void menu();//declarar funciones
void insertar (LISTAPTR*,char[]);
char eliminar(LISTAPTR*,char[]);
void imprimir(LISTAPTR);
int estavacia(LISTAPTR);
main(){
LISTAPTR principio = NULL;
LISTAPTR final = NULL;
int opcion;
char item[30];
do{
menu();
printf("\n\n\n\tSelecciona una opcion: ");
scanf("%d", &opcion);
switch(opcion){
case 1:
fflush(stdin);
system("cls");
printf("\n\n\tIngresa un nombre : ");
scanf("%s", item);
insertar (&final,item);
imprimir(final);
break;
case 2:
imprimir(final);
getch();
break;
case 3:
if (estavacia(principio)){
printf ("imprimir la cadena a eliminar: ");
scanf("\n%s ", item);
if(eliminar(&principio,item)){
printf("%s Eliminado.\n" ,item);
}
else
printf ("%s no se encontro.\n\n",item);
}
else
printf("La lista esta vacia\n\n");
break;
}
getch();
}while(opcion!=4);
getch();
}
void menu(){
system("cls");
printf("\n\n\t\t*** FILA ***");
printf("\n\t\t1)Insertar un miembro en la fila.");
printf("\n\t\t2)Imprimir la fila.");
printf("\n\t\t3)eliminar una fila");
printf("\n\t\t4)Salir.");
}
void insertar (LISTAPTR *sptr, char caracter[]){
LISTAPTR nuevo,principio,final;
nuevo = malloc (sizeof(LISTA));
if(nuevo != NULL)
{
strcpy( nuevo -> nombre,caracter);
nuevo -> sig = NULL;
principio=NULL;
final=*sptr;
while (final!=NULL && strcmp(caracter, final->nombre) > 0 ){
principio=final;
final=final->sig;
}
if (principio == NULL){
nuevo->sig=*sptr;
*sptr=nuevo;
}
else{
principio->sig=nuevo;
nuevo->sig=final;
}
}
}
void imprimir(LISTAPTR final)
{
if (final == NULL)
printf (" La lista esta vacia");
else {
printf("la lista es :\n");
while (final!=NULL){
printf (" %s \n",final->nombre);
final=final->sig;
}
}
}
char eliminar(LISTAPTR *sptr,char valor[]){
LISTAPTR principio,final,aux1;
if (valor==(*sptr)->nombre){
aux1=*sptr;
*sptr=(*sptr)->sig;
free(aux1);
return valor;
}
else{
principio=*sptr;
final = (*sptr)->sig;
while (final != NULL && final -> nombre!=valor){
principio = final;
final=final->sig;
}
if(final!=NULL){
aux1 =final;
principio->sig=final->sig;
free(aux1);
return valor;
}
}
return '\0';
}
int estavacia(LISTAPTR sptr){
return sptr==NULL;
}
viernes, 13 de enero de 2012
COLA
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
struct colanodo{
char miembro;
struct colanodo *sig;
};
typedef colanodo COLA;
typedef COLA *COLAPTR;
void menu();
int nohaycola(COLAPTR);
void escribelacola(COLAPTR);
void encolar(COLAPTR *, COLAPTR *, char);
char descolar(COLAPTR *, COLAPTR *);
main(){
COLAPTR principio = NULL;
COLAPTR final = NULL;
int opcion;
char item;
do{
menu();
printf("\n\n\n\tSelecciona una opcion: ");
scanf("%d", &opcion);
switch(opcion){
case 1:
fflush(stdin);
system("cls");
printf("\n\n\tDame el nombre del miembro: ");
scanf("%c", &item);
encolar(&principio, &final, item); //enqueue
break;
case 2:
if(principio == NULL && final == NULL){
system("cls");
printf("\n\n\n\n\n\n\t\tNo se puede extraer nada, tienes la cola vacia?!");
getche();
}
else{
printf("\n\t %c salio de la cola", descolar(&principio, &final));
getche();
}
break;
case 3:
system("cls");
escribelacola(principio);
break;
case 4:
system("exit");
break;
}
}while(opcion!=4);
}
char descolar(COLAPTR *adelante, COLAPTR *atras){
COLAPTR aux;
char salemiembro;
if(*adelante == *atras){
aux = *adelante;
salemiembro = aux -> miembro;
*adelante = NULL;
*atras = NULL;
free(aux);
}
else{
aux = *adelante;
salemiembro = aux -> miembro;
(*adelante) = aux -> sig;
free(aux);
}
return (salemiembro);
}
void encolar(COLAPTR *adelante, COLAPTR *atras, char valor){
COLAPTR aux = (COLAPTR) malloc(sizeof(COLA));
aux->sig = NULL;
aux->miembro = valor;
if (nohaycola(*adelante)){
*adelante = aux;
*atras = aux;
}
else{
(*atras) -> sig = aux;
*atras = aux;
}
}
void menu(){
system("cls");
printf("\n\n\t\t***OPERACIONES DE LA COLA***");
printf("\n\t\t1)Insertar un miembro en la cola.");
printf("\n\t\t2)Sacar un miembro de la cola.");
printf("\n\t\t3)Imprimir la cola.");
printf("\n\t\t4)Salir.");
}
int nohaycola(COLAPTR aux){
return aux == NULL;
}
void escribelacola(COLAPTR aux){
if(nohaycola(aux)){
printf("\n\n\n\n\n\n\n\n\n\n\n\t\t\t\tNO HAY COLA!!!!!!");
getche();
}
else{
printf("\n\n\n\t\t***La COLA esta asi***\n\n");
printf("\nINICIO DE LA COLA -> ");
while(aux != NULL){
printf("%c -> ", aux -> miembro);
aux = aux -> sig;
}
printf(" FIN DE LA COLA.");
getche();
}
}
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
struct colanodo{
char miembro;
struct colanodo *sig;
};
typedef colanodo COLA;
typedef COLA *COLAPTR;
void menu();
int nohaycola(COLAPTR);
void escribelacola(COLAPTR);
void encolar(COLAPTR *, COLAPTR *, char);
char descolar(COLAPTR *, COLAPTR *);
main(){
COLAPTR principio = NULL;
COLAPTR final = NULL;
int opcion;
char item;
do{
menu();
printf("\n\n\n\tSelecciona una opcion: ");
scanf("%d", &opcion);
switch(opcion){
case 1:
fflush(stdin);
system("cls");
printf("\n\n\tDame el nombre del miembro: ");
scanf("%c", &item);
encolar(&principio, &final, item); //enqueue
break;
case 2:
if(principio == NULL && final == NULL){
system("cls");
printf("\n\n\n\n\n\n\t\tNo se puede extraer nada, tienes la cola vacia?!");
getche();
}
else{
printf("\n\t %c salio de la cola", descolar(&principio, &final));
getche();
}
break;
case 3:
system("cls");
escribelacola(principio);
break;
case 4:
system("exit");
break;
}
}while(opcion!=4);
}
char descolar(COLAPTR *adelante, COLAPTR *atras){
COLAPTR aux;
char salemiembro;
if(*adelante == *atras){
aux = *adelante;
salemiembro = aux -> miembro;
*adelante = NULL;
*atras = NULL;
free(aux);
}
else{
aux = *adelante;
salemiembro = aux -> miembro;
(*adelante) = aux -> sig;
free(aux);
}
return (salemiembro);
}
void encolar(COLAPTR *adelante, COLAPTR *atras, char valor){
COLAPTR aux = (COLAPTR) malloc(sizeof(COLA));
aux->sig = NULL;
aux->miembro = valor;
if (nohaycola(*adelante)){
*adelante = aux;
*atras = aux;
}
else{
(*atras) -> sig = aux;
*atras = aux;
}
}
void menu(){
system("cls");
printf("\n\n\t\t***OPERACIONES DE LA COLA***");
printf("\n\t\t1)Insertar un miembro en la cola.");
printf("\n\t\t2)Sacar un miembro de la cola.");
printf("\n\t\t3)Imprimir la cola.");
printf("\n\t\t4)Salir.");
}
int nohaycola(COLAPTR aux){
return aux == NULL;
}
void escribelacola(COLAPTR aux){
if(nohaycola(aux)){
printf("\n\n\n\n\n\n\n\n\n\n\n\t\t\t\tNO HAY COLA!!!!!!");
getche();
}
else{
printf("\n\n\n\t\t***La COLA esta asi***\n\n");
printf("\nINICIO DE LA COLA -> ");
while(aux != NULL){
printf("%c -> ", aux -> miembro);
aux = aux -> sig;
}
printf(" FIN DE LA COLA.");
getche();
}
}
miércoles, 11 de enero de 2012
PILA
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
struct pilanodo{
int dato;
struct pilanodo *sig;
};
typedef struct pilanodo PILA;
typedef PILA *PILAPTR;
void menu(void);//no regresa valor pero no se pasa una lista de parametros
void push (PILAPTR*,int);
int pop(PILAPTR *);
int estavacia(PILAPTR );
int imprime (PILAPTR);
main()
{
PILAPTR pilaptr = NULL;// se asigna valor nulo por que no existe la pila
int opcion,valor;//para el menu de main
//llamado a un menu
menu();
do{
printf("\tElige una opcion....\n");
scanf("%d",&opcion);
switch (opcion)
{
case 1: printf("dame el valor: \n");
scanf("%d",&valor);
push(&pilaptr,valor);
break;
case 2: if (!estavacia(pilaptr))//llama una funcion dice que si no esta vacia
printf ("\n\n El valor extraido de la pila es : %d\n",pop(&pilaptr));
break;
case 3: printf("el contenido de la pila es: \n\n");
imprime(pilaptr );
break;
default: printf("El numero que ingresaste es incorrecto\n");
}
} while(opcion!=4);
getch();
}
void menu(void)
{
system ("cls");
printf("operaciones disponibles con la PILA\n\n");
printf ("1.- insertar un valor en la pila\n");
printf ("2.- extraer un valor de la pila\n");
printf ("3.- imprimir la pila\n");
printf ("4.- salir del programa\n\n\n");
}
void push (PILAPTR *aux, int valor ){
PILAPTR aux1;
aux1=malloc (sizeof (PILA));//malloc busca en memoria una area del tamanio de pila
if(aux1!= NULL)
{
aux1 -> dato = valor;
aux1 -> sig =NULL;
if(*aux==NULL)
*aux =aux1;
else{
aux1->sig=*aux;
*aux=aux1;
} }
}
int estavacia(PILAPTR aux){
return aux ==NULL;//verifica que la pila no esta vacia y manda cero o uno
}
int pop (PILAPTR*aux)//aux apuntaa pilaptr
{
if (aux==NULL){
printf("No se a ingresado ningun valor");
}
else{
PILAPTR aux1;
int salevalor;// se declara un valor entero
aux1=*aux;
*aux=aux1->sig;//sirve para pasar a pilaptr al siguiente nodo
salevalor=aux1->dato;
free (aux1);// libera el espacio en memoria para otra aplicacion
return (salevalor);//regressa un valor y e guarda en pop &pilaptr
}}
int imprime (PILAPTR aux)
{
if (aux==NULL){
printf("La pila esta vacia\n");
}
else{
system ("cls");
printf ("tope de la pila");
while (aux != NULL){
printf("\n%d\n",aux->dato);
aux=aux-> sig;
}
printf("fondo DE LA PILA\n");
}
}
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
struct pilanodo{
int dato;
struct pilanodo *sig;
};
typedef struct pilanodo PILA;
typedef PILA *PILAPTR;
void menu(void);//no regresa valor pero no se pasa una lista de parametros
void push (PILAPTR*,int);
int pop(PILAPTR *);
int estavacia(PILAPTR );
int imprime (PILAPTR);
main()
{
PILAPTR pilaptr = NULL;// se asigna valor nulo por que no existe la pila
int opcion,valor;//para el menu de main
//llamado a un menu
menu();
do{
printf("\tElige una opcion....\n");
scanf("%d",&opcion);
switch (opcion)
{
case 1: printf("dame el valor: \n");
scanf("%d",&valor);
push(&pilaptr,valor);
break;
case 2: if (!estavacia(pilaptr))//llama una funcion dice que si no esta vacia
printf ("\n\n El valor extraido de la pila es : %d\n",pop(&pilaptr));
break;
case 3: printf("el contenido de la pila es: \n\n");
imprime(pilaptr );
break;
default: printf("El numero que ingresaste es incorrecto\n");
}
} while(opcion!=4);
getch();
}
void menu(void)
{
system ("cls");
printf("operaciones disponibles con la PILA\n\n");
printf ("1.- insertar un valor en la pila\n");
printf ("2.- extraer un valor de la pila\n");
printf ("3.- imprimir la pila\n");
printf ("4.- salir del programa\n\n\n");
}
void push (PILAPTR *aux, int valor ){
PILAPTR aux1;
aux1=malloc (sizeof (PILA));//malloc busca en memoria una area del tamanio de pila
if(aux1!= NULL)
{
aux1 -> dato = valor;
aux1 -> sig =NULL;
if(*aux==NULL)
*aux =aux1;
else{
aux1->sig=*aux;
*aux=aux1;
} }
}
int estavacia(PILAPTR aux){
return aux ==NULL;//verifica que la pila no esta vacia y manda cero o uno
}
int pop (PILAPTR*aux)//aux apuntaa pilaptr
{
if (aux==NULL){
printf("No se a ingresado ningun valor");
}
else{
PILAPTR aux1;
int salevalor;// se declara un valor entero
aux1=*aux;
*aux=aux1->sig;//sirve para pasar a pilaptr al siguiente nodo
salevalor=aux1->dato;
free (aux1);// libera el espacio en memoria para otra aplicacion
return (salevalor);//regressa un valor y e guarda en pop &pilaptr
}}
int imprime (PILAPTR aux)
{
if (aux==NULL){
printf("La pila esta vacia\n");
}
else{
system ("cls");
printf ("tope de la pila");
while (aux != NULL){
printf("\n%d\n",aux->dato);
aux=aux-> sig;
}
printf("fondo DE LA PILA\n");
}
}
jueves, 5 de enero de 2012
examen 1 (código)
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <windows.h>
float TareasTotales;
float TotAsis;
float ParTotales;
struct alumno
{
int cuenta;
char Nombre[50];
char ApMat[15];
char ApPat[15];
float asistencias;
float tareas;
float participaciones;
float examen;
float otros; //uuuuuuuuuuuuuu!!!
float CFinal;
};
struct alumno Alumno;
void captura(){
system("cls");
printf("\nIngresa los datos:");
printf("\nIngresa el numero de cuenta: "); scanf("%d", &Alumno.cuenta);
printf("\nIngresa el Apeido Paterno: "); scanf("%s", Alumno.ApPat);
printf("\nIngresa el Apeido Materno: "); scanf("%s", Alumno.ApMat);
printf("\nIngresa los nombres: "); scanf("%s", Alumno.Nombre);
printf("\nIngrese el numero de asistencias: "); scanf("%f", &Alumno.asistencias);
printf("\nIngrese el numero de tareas entregadas: "); scanf("%f", &Alumno.tareas);
printf("\nIngrese el numero de participaciones obtenidas: "); scanf("%f", &Alumno.participaciones);
printf("\nIngrese la calificacione del examen: "); scanf("%f", &Alumno.examen);
printf("\nCalificacion en el trabajo extra: "); scanf ("%f", &Alumno.otros);
printf("\n\n\n ==== Presiones ENTER para alamacenar los datos === ");
getch();
}
void mostrar(){
system("cls");
printf("\nNUMERO DE CUENTA : %d", Alumno.cuenta);
printf("\n APEIDO PATERNO : %s", Alumno.ApPat);
printf("\n APEIDO MATERNO : %s", Alumno.ApMat);
printf("\n NOMBRE(S) : %s", Alumno.Nombre);
printf("\nTuvo %2.0f de %2.0f asistencias", Alumno.asistencias, TotAsis);
printf("\nEntrego %2.0f de %2.0f tareas", Alumno.tareas, TareasTotales);
printf("\nTuvo %2.0f de %2.0f participaciones totales", Alumno.participaciones, ParTotales);
printf("\nLa calificacion del examen es : %2.2f", Alumno.examen);
printf("\nLa calificacion del tabajo extra es: %2.2f", Alumno.otros);
printf("\n\n\n === Presione ENTER para recibir la clificacion final === ");
getch();
}
main(){
printf("Este programa te pide datos de un alumno ");
printf("\nLos almacena en una estructura de datos");
printf("\nY te devuelve la calificacion final del alumno");
printf(" \n=== Presione ENTER para comenzar === ");
getch();
system("cls");
printf("¿Cuantas asistencias hubo en total?: "); scanf("%f", &TotAsis);
printf("¿Cuantas tareas hubo en total?: "); scanf("%f", &TareasTotales);
printf("¿Cuantas participaciones hubo en total?: "); scanf("%f", &ParTotales);
captura();
mostrar();
Alumno.CFinal = ((Alumno.examen * 0.50) + ( (Alumno.tareas / TareasTotales) * 3 ) + ((Alumno.participaciones/ParTotales)*1) + ((Alumno.asistencias/TotAsis)* .5) + (Alumno.otros * 0.05));
system("cls");
printf("La calificacion de %s es: %2.2f ", Alumno.Nombre, Alumno.CFinal);
getch();
examen1 (preguntas y respuestas)
EXAMEN PARCIAL 1 - INFORMATICA II CURSO INTERSEMESTRAL 2012-2
-------------------------------------------------------------
1. Que es una Estructura de Datos? (valor 1 punto)
R= Una Estructura de Datos es cualquier colección o grupo de datos de tal manera organizados que tengan asociados un conjunto de operaciones que permiten manipularlos.
2. Para que sirve una estructura de datos? (valor 1 punto)
R= Sirve como molde, o modelo de un, o una parte de un sistema de información.
3. Para que se utilizan los apuntadores en Estructuras de datos dinámicas? (valor 1 punto)
R= sirven para pasar al siguiente nodo, así como también establecer el tamaño de la estructura.
4. En que consiste la Abstracción de Datos? (valor 1 punto)
R= Técnica, o metodología que permite diseñar estructuras de datos; y consiste en representarlo bajo ciertos criterios y lineamientos las características esenciales de una estructura.
5. Qué es un tipo de Datos Abstracto? (valor 1 punto)
R= Generar una estructura de Datos a base de la Abstracción, y que se pueda implementar en cualquier lenguaje de programación.
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)
Suscribirse a:
Entradas (Atom)