domingo, 15 de mayo de 2011

Funcion de Arbol binario (niveles del arbol)

#define MAXIMO(a,b) ((a) < (b)?(b):(a))

int altura(NodoN n,ArbolB T)
{
  f(T == NULL)
        error(1);
  else
    return 1+MAXIMO(altura(nsertaABx(n,T),T),altura(nsertaABr(n,T),T));

Funcion de arbol binario (numero de nodos)

int numero(NodoB n,ArbolB T){
    if(arbol == NULL)
    error(1);
    else
    return 1+numero(insertaABr(n,T),T)+numero(insertaABr(n,T),T);
}

martes, 10 de mayo de 2011

Funcion de arbol binario (Pos-orden)

void postorden(ARBOL rarbol){
     if(rarbol!=NULL){
                      postorden(rarbol->izqnodo);
                      postorden(rarbol->dernodo);
                      printf(" %c ",rarbol->info);
                      }
     }

Funcion de arbol binario (In-orden)

void inorden(ARBOL rarbol){
     if(rarbol!=NULL){
                      inorden(rarbol->izqnodo);
                      printf(" %c ",rarbol->dato);
                      inorden(rarbol->dernodo);
                      }
     }

Funcion de arbol binario (Pre-orden)

void preorden(ARBOL rarbol){
     if(rarbol!=NULL){
                   printf(" %c ",rarbol->dato);
                   preorden(rarbol->izqnodo);
                   preorden(rarbol->dernodo);
                    }
  }

jueves, 5 de mayo de 2011

Factorial de un numero (recursividad)

Diagrama de flujo


Codigo en C
/*Descripcion:Factorial de un numero
  Autor: Membrillo Rodriguez Cristian Emanuel
  Grupo: 2293 FCA UNAM */

#include<stdio.h>
// declaracion de la funcion factorial
int fact(int k);
main(){
       int n;
       printf("Ingrese un numero entero = ");
       scanf("%i", &n);
       printf("\n\nEl factorial de %d es %d \n\n", n, fact(n));
      
       printf("\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\t By MERC");
}


// definicion de la funcion factorial
int fact(int k) {
    if (k==1)
    return 1;
    else
    return fact(k-1)*k;
    }

Corrida

Torres de Hanoi (recursividad)

Torres de Hanoi, movimientos a realizar

Diagrama de flujo


Codigo en C
/*Descripcion:piramide de hanoi con 3 torres
  Autor: Membrillo Rodriguez Cristian Emanuel
  Grupo: 2293 FCA UNAM */

#include <stdio.h>

void hanoi(int n,int com, int aux, int fin);

main(){
       char com='A';
       char aux='B';
       char fin='C';
       int n;
      
       printf("\nN£mero de discos: ");
       scanf("%d",&n);
      
       printf("\n\nLos movimientos a realizar son: \n");
       hanoi(n,com,aux,fin);
      
       printf("\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\t By MERC");
}

void hanoi(int n,int com, int aux, int fin){
     if(n==1){
              printf("%c->%c",com,fin);
              }
              else{
                   hanoi(n-1,com,fin,aux);
                   printf("\n%c->%c\n",com,fin);
                   hanoi(n-1,aux,com,fin);
                   }
     }

Corrida