A continuación se presenta la solución para el Taller de Grafos. (Click para visualizar)   1) Para cada uno de los siguientes grafos, determine las matrices de adyacencia e incidencia. Utilice la potencia de las matrices de adyacencia para determinar el nivel de los recorridos desde A hasta D, para cambos casos. (Descargar solucion del punto 1).   2) Aplique las iteraciones apropiadas del algoritmo de Dijkstra, para hallar la ruta minima desde el nodo 1 hasta el nodo 9.   Análisis Primer Paso: En este primer paso podemos apreciar que hay tres candidatos los vértices b, d  y c, en este caso hacemos el camino desde el vértice a hasta el vértice c, ya que para este caso es el camino más corto y viable, si hacemos el recorrido desde el vértice a, nos damos cuenta en el camino del d al e, que sería el próximo, el recorrido se devuelve. Entonces: Solución momentánea:

Camino: ac

Distancia:24

Segundo Paso:  Tenemos un nuevo vértice que es el g.

Camino: acg

Distancia: (24+28)= 52

Tercer Paso: Añadimos el vértice que es el vértice de menos costo, en este caso el h

Camino: acgh

Distancia: (24+28+12)= 64

Cuarto Paso:  Para nuestro camino final añadimos el último vértice que es i.

Camino: acghi

Distancia: (24+28+12+10)= 74.

Nota: cambié los nodos de números a letras, para que no se confundiera con el peso. 5)  Para cada uno de los siguientes arboles escriba las respectivas expresiones de los recorridos : pre_orden, in_orden,  y post_orden. Implemente un algoritmo para uno de ellos.

 

 

 

 Codigo fuente :

#include
#include
#include
#include
#include
#include 

using namespace std;

struct nodoarbol{
       string dato;
//       int dato;
       struct nodoarbol *izq;
       struct nodoarbol *der;
};

typedef struct nodoarbol noDarbol;
typedef noDarbol *noDoarbol;
void insertanodo(noDoarbol *pi, string);
void inOrden(noDoarbol pi);
void postOrden(noDoarbol pi);
void preOrden(noDoarbol pi);

int main(){

    int i, n;
    string val, a[30];
    noDoarbol raiz = NULL;

    cout << "Cuantos numeros va a insertar en el arbol > ";
    cin >> n;

    for(i=1; i> val;
          a[i] = val;
          insertanodo(&raiz, val);
    }

    cout << "\n\n Los numeros insertados son : ";
    for(i=1; idato = valor;
                 (*pi)->izq = NULL;
                 (*pi)->der = NULL;
          }else{
                cout << "No se inserto " << valor << " no hay memoria disponible.\n";
          }
     }else{
           if( valor < (*pi)->dato){
               cout << "\n Inserta izq " << valor;                insertanodo( &((*pi)->izq), valor);
           }else ( valor > (*pi)->dato ){
               cout << "\n Inserta der " << valor;                                 insertanodo( &((*pi)->der), valor);
           }
     }
}

void inOrden(noDoarbol pi){
     if(pi != NULL){
           inOrden(pi->izq);
           cout << " " << pi->dato;
           inOrden(pi->der);
     }
}

void postOrden(noDoarbol pi){
     if(pi != NULL){
           postOrden(pi->izq);
           postOrden(pi->der);
           cout << " " << pi->dato;
     }
}

void preOrden(noDoarbol pi){
     if(pi != NULL){
           cout << " " << pi->dato;
           preOrden(pi->izq);
           preOrden(pi->der);
     }
}

..

 

 

7) Mediante la regla de la cadena, dibuje el respectivo árbol de relaciones y determine.    8.) Para los siguientes circuitos determine la resistencia equivalente y la corriente total que circula en cada uno.

 

Punto 11B  )

 

 

 

Este trabajo fue elaborado por :

  • Gersain Linares Bustos | 2012150011
  • John Danilo Barriga Camacho |  2012150029
  • Edwin Torres Sanchez | 201125007
  • Andrea Muñoz Cifuentes | 2006250023
  • German Quintero Gonzalez | 2012150012

Hakuna Matata!!