Lista de Nodos Lista de Arcos
Estructura de Datos
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*/
Suscribirse a:
Entradas (Atom)