SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Servicio de asesoría y resolución de ejercicios      ciencias_help@hotmail.com




         Pide una cotización a nuestros correos.


                                    Maestros Online

          Estructura de
          datos avanzada

                                                  Apoyo en
                                                  ejercicios

             Servicio de asesorías y solución de ejercicios




                       Ciencias_help@hotmail.com

                www.maestronline.com
Servicio de asesoría y resolución de ejercicios          ciencias_help@hotmail.com


Ejercicio

       Supon que se está diseñando el módulo de procesamiento de un sistema para
       manipulación de gráficos. En este caso te han asignado manipular los
       siguientes poliedros tridimensionales:

              Tetraedro
              Cubo
              Octaedro

       Las actividades a realizar son las siguientes:

                   o   Define las estructuras necesarias para representar los objetos
                       dados.
                   o   Diseña un programa en lenguaje C que solicite las coordenadas
                       de los vértices de los tres objetos.
                   o   Diseña un menú, una vez que cuentas con las coordenadas de
                       los objetos, en el cual se puedan elegir las siguientes
                       operaciones a realizar sobre los poliedros:
                            Traslación: Se deberán proporcionar la traslación en
                              dirección del eje X, la traslación en dirección del eje Y, y
                              la traslación en dirección del eje Z.
                            Rotación: Se deberá proporcionar el ángulo en radianes a
                              rotar. Además, deberá indicarse alrededor de qué eje del
                              espacio tridimensional se lleva a cabo la rotación: X, Y o
                              Z.
                            Escalamiento: Se deberán proporcionar el escalamiento
                              en dirección del eje X, el escalamiento en dirección del
                              eje Y, y el escalamiento en dirección del eje Z.
                   o   Presenta los nuevos valores de sus coordenadas, al momento en
                       que los objetos han sido transformados de acuerdo a la
                       operación elegida.




Ejercicio

   1.-Escribe un programa en lenguaje C que combine dos listas encadenadas cuyos
       nodos contienen enteros. Los enteros en las listas deberán estar ordenados de
       manera ascendente. Diseña una función combinar que recibe los apuntadores
       al primer nodo de cada una de las listas. La función deberá retornar como
       parámetro de salida un apuntador al primer nodo de la nueva lista combinada.
       Obviamente la lista combinada tiene sus elementos ordenados de manera
       ascendente.
       Realiza la operación de eliminación de listas, verificación de lista vacía y
   2.-
       realiza consultas.




                www.maestronline.com
Servicio de asesoría y resolución de ejercicios        ciencias_help@hotmail.com


Ejercicio

       Considera el siguiente grafo G:




              Muestra sus listas de adyacencias.
              Muestra el orden en que los vértices de G son procesados al usar el
               algoritmo de búsqueda por profundidad comenzando por el vértice C
               (también incluye todos los estados de la pila y el estatus de cada
               vértice durante la ejecución del algoritmo).

       Ahora considera la siguiente versión en pseudocódigo del algoritmo para la
       búsqueda por profundidad (en donde los arreglos color, P, f, d y la variable
       time son globales):

       DEPTH_FIRST_SEARCH(G)
       {
       Por cada vértice u en V(G)
       {
       color[u] = White
       P[u] = Null
       }
       time = 0
       Por cada vértice u en V(G)
       {
       Si color[u] = White entonces
       {
       DEPTH_FIRST_SEARCH_Visit(u)
       }
       }
       }

       DEPTH_FIRST_SEARCH_Visit(u)
       {
       color[u] = Gray
       d[u] = time
       time = time + 1
       Por cada vértice v en Adj[u]
       {
       Si color[v] = White entonces
       {
       P[v] = u
       DEPTH_FIRST_SEARCH_Visit(v)
       }



                www.maestronline.com
Servicio de asesoría y resolución de ejercicios           ciencias_help@hotmail.com


       }
       color[u] = Black
       f[u] = time
       time = time + 1
       }

       Aplica esta versión de la búsqueda por profundidad al grafo G dado:

                    o   Compara las salidas obtenidas por los dos algoritmos.
                    o   Discute las diferencias entre los dos procedimientos dados.
                    o   ¿Existe de manera explicita una pila en el nuevo algoritmo
                        dado? Justifica tu respuesta.




Ejercicio

       Tu actividad consistirá de los siguientes puntos, los cuales deberán estar
       conjuntados en un sistema programado en lenguaje C (reutiliza funciones
       de la Actividad Integradora del Módulo 2):

               En primer lugar, solicita al usuario que introduzca un grafo de n
                vértices en donde el valor de n lo define precisamente su usuario. Una
                vez que cuente con el valor de n, el usuario deberá introducir el grafo.
                Los vértices en el grafo serán etiquetados como 1, 2, 3, …, n. El
                proceso de introducción de grafo será llevado a efecto al preguntar, por
                cada vértice, los vértices con los cuales comparte una arista. Por
                ejemplo:

                                       Programa                          Usuario
               ¿Cuántos vértices son vecinos del vértice 2?              4
               Introduce la etiqueta de vecino del vértice 2:            1
               Introduce la etiqueta de vecino del vértice 2:            3
               Introduce la etiqueta de vecino del vértice 2:            4
               Introduce la etiqueta de vecino del vértice 2:            5
               ¿Cuántos vértices son vecinos del vértice 3?              …

               Diseña una estructura autorreferenciada nodoVertice la cual tendrá tres
                miembros: El primer miembro será un entero, el segundo miembro
                será el primer elemento de una lista encadenada del tipo
                NODO_LISTA_PTR mientras que el tercer miembro será un enlace para
                conectarse con otro nodo del tipo nodoVertice. Es decir, programarás
                una lista encadenada en la que cada nodo tendrá también una lista
                encadenada aunque ésta última será con nodos del tipo
                NODO_LISTA_PTR. La finalidad es que representes al grafo que el
                usuario introduzca mediante listas de adyacencias tal como se definió
                en la sesión 6. Por ejemplo, considera el siguiente grafo:




                 www.maestronline.com
Servicio de asesoría y resolución de ejercicios           ciencias_help@hotmail.com


                                           Adj
                                            1     à   2    à     5
                                            2     à   1    à     3       à   4   à     5
                                            3     à   2    à     4
                                            4     à   2    à     5       à   3
                                            5     à   1    à     2       à   4

       Tal grafo tiene cinco vértices (n = 5). Por lo tanto, la lista encadenada Adj
       tendrá en total cinco nodos del tipo NODO_VERTICE_PTR. Considera al nodo
       4. Tal nodo tiene en su primer miembro el valor 4 (la etiqueta del vértice), el
       primer elemento de la lista encadenada conformada por 2, 5, y 3; y
       finalmente su enlace que apunta al nodo con valor 5 de la lista Adj.

              Una vez que se tenga en memoria el grafo dado por el usuario, se le
               deberá solicitar que indique un vértice inicial. Dado el vértice inicial se
               deberá realizar una búsqueda por amplitud sobre el grafo dado. Para
               este efecto programa el pseudocódigo analizado en la sesión 9. Diseña
               una estructura autorreferencia nodoCola la cual tendrá tres miembros:
               Dos de los miembros serán enteros mientras que el tercer miembro
               será un enlace para conectarse con otro nodo del tipo nodoCola. El
               primer miembro entero deberá guardar la etiqueta de un vértice
               mientras que el segundo miembro entero guardará el STATUS del
               vértice. Tal cola será auxiliar en el algoritmo para la búsqueda por
               amplitud.
              Una vez que la búsqueda ha sido realizada se deberá presentar al
               usuario el resultado correspondiente.

       Utiliza únicamente las estructuras de datos dinámicas que se le solicitan. El
       programa que diseñaráa no requiere de la declaración ni uso de arreglos.




Ejercicio

       Muestra el árbol de búsqueda binaria que se obtiene al insertar los siguientes
       elementos:

       5, 9, -10, 11, 20, 14, 3, 2, 6, 7, 12, 15, -6, -1, 0, 1, 4, 13.

       Inserta los enteros de la lista procediendo de izquierda a derecha (es decir, el
       número 5 será el nodo raíz del árbol resultante). Realiza “corridas de
       escritorio” a fin de mostrar cómo se recorrería el árbol que ha construido y
       listarían sus elementos de acuerdo a:

           1. La función inOrder
           2. La función preOrder
           3. La función postOrder

       Muestra claramente cómo se van realizado las llamadas recursivas.




                www.maestronline.com
Servicio de asesoría y resolución de ejercicios           ciencias_help@hotmail.com




Ejercicio

       Se tienen n puntos pi = (xi, yi) dentro de un círculo de radio igual a uno y con
       centro en el origen tales que
       (xi2 + yi2) Î (0, 1] para i = 1, 2, 3, …, n. Supón que los puntos están
       uniformemente distribuidos, i.e., la probabilidad de encontrar un punto en
       cualquier región del círculo es proporcional al área de tal región. Modifica al
       algoritmo Bucket Sort para ordenar a los n puntos de acuerdo a sus distancias
                 del origen
       (Hint: Rediseña el proceso de división del intervalo [0, 1) en el algoritmo a fin
       de que reflejes la distribución de los puntos en un círculo unitario).




Ejercicio

       Considera el siguiente arreglo ordenado:

              0    1     2    3    4     5    6   7    8   9   10 11 12 13 14
        A    12   14    20   21   22    40   50   60   70 100 121 122 125 127 128

       Realiza “corridas de escritorio” del algoritmo de Búsqueda binaria para
       responder a las siguientes preguntas:

            1. Sea x = 127 ¿Está x en el arreglo A?
            2. Sea x = 55 ¿Está x en el arreglo A?
            3. Sea x = 12 ¿Está x en el arreglo A?

       Presenta los valores de las variables e indique el subarreglo de búsqueda
       durante cada llamada recursiva.




Práctica integradora opción 1:

Un grafo G está conectado si existe una ruta entre cualesquiera de sus dos vértices y
un circuito es una ruta cerrada de longitud mayor o igual a 3 en la cual todos los
vértices son distintos excepto el inicial y el final. Recuerda que a un grafo T se le llama
árbol si es conectado y T no tiene circuitos. Si un grafo G no es conectado y no tiene
circuitos, entonces se le llama bosque. El árbol que consiste de un solo vértice sin
aristas (i.e. el grafo trivial) es llamado árbol degenerado. Los siguientes son ejemplos
de árbol (a) y bosque (b).




                  www.maestronline.com
Servicio de asesoría y resolución de ejercicios       ciencias_help@hotmail.com




                             a                               b

Un subgrafo T de un grafo conectado G es llamado un árbol de expansión de G si T es
un árbol y T incluye a todos los vértices de G. A continuación se presenta un grafo G y
tres posibles árboles de expansión T1, T2 y T3 de G:




                        G                                        T1




                       T2                                        T3

Supón que G es un grafo conectado pesado. Es decir, a cada arista de G le es asignado
un número no negativo llamado el peso de la arista. Entonces a cualquier árbol de
expansión T de G le es asignado un peso total obtenido al sumar los pesos de las
aristas en T. Un árbol de expansión mínimo de G es un árbol de expansión cuyo peso
total es tan pequeño como sea posible.

El siguiente pseudocódigo permitirá encontrar el árbol de expansión mínimo T de un
grafo conectado pesado G en donde G tiene n vértices (en tal caso, T deberá tener n-1
arisas).

MINIMUM_SPANNING_TREE(G, n)
{

            o   Ordenar las aristas de G en orden decreciente respecto a su peso.
            o   Proceder secuencialmente, borrar cada arista que no desconecte al grafo
                hasta que se conserven n-1 aristas.

}




                www.maestronline.com
Servicio de asesoría y resolución de ejercicios            ciencias_help@hotmail.com


El peso de un árbol de expansión mínimo es único, pero el árbol de expansión mínimo
no lo es. Se pueden obtener diferentes árboles de expansión mínimos cuando dos o
más aristas tienen el mismo peso.

Considérese el siguiente grafo G:




En donde:
V= {A, B, C, D, E ,F}
E = {{B,C}, {A,F}, {A,C}, {B,E}, {C,E}, {B,F}, {A,E}, {D,F}, {B,D}}
y w({B,C})= 8, w({A,F})= 7, w({A,C})= 7, w({B,E})= 7, w({C,E})= 6, w({B,F})= 5,
w({A,E})= 4, w({D,F})= 4, w({B,D})= 3.

Se aplicará el algoritmo a fin de encontrar un árbol de expansión mínimo. Primero se
ordenan las aristas en orden decreciente respecto al peso y entonces de manera
sucesiva se eliminan aquellas sin desconectar a G hasta que sólo se tengan cinco
aristas.

Aristas    {B,C}       {A,F}     {A,C}     {B,E}   {C,E}   {B,F}   {A,E}    {D,F}      {B,D}
Peso         8           7         7         7       6       5       4        4          2
¿Eliminar?   Si         Si         Si       No      No      Si

Por lo tanto, el árbol de expansión mínimo de G es obtenido y se compone por las
aristas:
{B,E}, {C,E}, {A,E}, {D,F}, {B,D}

El peso de tal árbol es igual a 24 y se muestra a continuación:




Cuando el número de aristas y vértices en G es muy grande, el decidir si G está
conectado al remover una de sus aristas no es un problema obvio.

Actividades:

       Avance de práctica integradora (a entregar al finalizar el Módulo 3):



                www.maestronline.com
Servicio de asesoría y resolución de ejercicios          ciencias_help@hotmail.com


            o   Implementar en lenguaje C el algoritmo
                MINIMUM_SPANNING_TREE(G,n) en donde los grafos estarán
                representados en la computadora mediante listas de adyacencias.
            o Como ya se comentó, el problema de determinar si un grafo G está
                conectado al remover una de sus aristas no es trivial, sin embargo
                existen en la literatura algoritmos que lo solucionan. Busque e
                implemente en lenguaje C el algoritmo que resuelva el problema dado a
                fin de que pueda entonces implementar la función
                MINIMUM_SPANNING_TREE(G,n). Deberá hacer referencia debidamente
                a las fuentes de información consultadas. Recuerde que los algoritmos
                implementados deben asumir la representación de un grafo por listas de
                adyacencias.
       Complemento de práctica integradora (a entregar al finalizar el Módulo
        4):
       Una vez que se cuente con la debida implementación de la función
        MINIMUM_SPANNING_TREE(G,n) programa un sistema en lenguaje C con las
        siguientes características:
       El sistema deberá solicitar al usuario que proporcione el nombre de un archivo
        de texto que contiene la especificación de su grafo. En el archivo se deberán
        indicar: el conjunto de vértices del grafo, el conjunto de aristas y los pesos de
        cada arista. Un ejemplo de archivo de entrada sería el siguiente:
       {A, B, C, D, E ,F}
        {{B,C}, {A,F}, {A,C}, {B,E}, {C,E}, {B,F}, {A,E}, {D,F}, {B,D}}
        w({B,C})= 8
        w({A,F})= 7
        w({A,C})= 7
        w({B,E})= 7
        w({C,E})= 6
        w({B,F})= 5
        w({A,E})= 4
        w({D,F})= 4
        w({B,D})= 3
       En el primer renglón se indican las etiquetas de los vértices del grafo. En el
        segundo renglón se indican los pares de vértices que definen cada arista del
        grafo. En el renglón 3 y subsecuentes se indica el peso de cada arista. Cuando
        se cuente con esta información se deberá representar al grafo con listas de
        adyacencias y se deberá validar que el grafo de entrada sea conectado, si no lo
        es entonces el sistema deberá informar al usuario que no puede proceder la
        búsqueda del árbol de expansión mínimo.
       Una vez que se cuenta con el grafo en memoria y éste ha sido validado
        entonces se procede a buscar el árbol de expansión mínimo. El árbol
        encontrado deberá ser presentado tanto en pantalla como en un archivo cuyo
        nombre se deberá solicitar al usuario. Para describir el árbol resultante utilice el
        formato descrito para los archivos de entrada.




                www.maestronline.com

Más contenido relacionado

La actualidad más candente (20)

Divide y Vencerás
Divide y VencerásDivide y Vencerás
Divide y Vencerás
 
Enlace dinámico
Enlace dinámicoEnlace dinámico
Enlace dinámico
 
Algoritmos divide y vencerás
Algoritmos divide y vencerásAlgoritmos divide y vencerás
Algoritmos divide y vencerás
 
Examanesplf
ExamanesplfExamanesplf
Examanesplf
 
CUADERNILLO - UNIDAD 2
CUADERNILLO - UNIDAD 2CUADERNILLO - UNIDAD 2
CUADERNILLO - UNIDAD 2
 
Paralela3
Paralela3Paralela3
Paralela3
 
Tema 11
Tema 11Tema 11
Tema 11
 
Divide y Venceras
Divide y VencerasDivide y Venceras
Divide y Venceras
 
6 prob busquinte
6 prob busquinte6 prob busquinte
6 prob busquinte
 
Actividad de aprendizaje 2
Actividad de aprendizaje 2Actividad de aprendizaje 2
Actividad de aprendizaje 2
 
Programación en Prolog para Inteligencia Artificial
Programación en Prolog para Inteligencia ArtificialProgramación en Prolog para Inteligencia Artificial
Programación en Prolog para Inteligencia Artificial
 
Recursividad
RecursividadRecursividad
Recursividad
 
Parte2
Parte2Parte2
Parte2
 
Tema4 programación generica
Tema4   programación genericaTema4   programación generica
Tema4 programación generica
 
Problema de la ocho reinas. Implementación en Prolog.
Problema de la ocho reinas. Implementación en Prolog.Problema de la ocho reinas. Implementación en Prolog.
Problema de la ocho reinas. Implementación en Prolog.
 
Ads matlab
Ads matlabAds matlab
Ads matlab
 
Arrays en VB 6.0
Arrays en VB 6.0Arrays en VB 6.0
Arrays en VB 6.0
 
3 funciones de varias variables
3 funciones de varias variables3 funciones de varias variables
3 funciones de varias variables
 
Metodologia de la programacion recursividad
Metodologia de la programacion   recursividadMetodologia de la programacion   recursividad
Metodologia de la programacion recursividad
 
4 la derivada por formulas
4 la derivada por formulas4 la derivada por formulas
4 la derivada por formulas
 

Similar a Estructura de datos avanzada

Similar a Estructura de datos avanzada (20)

Estructura de datos avanzada
Estructura de datos avanzadaEstructura de datos avanzada
Estructura de datos avanzada
 
Guia mate 4
Guia mate 4Guia mate 4
Guia mate 4
 
Ejercicios matenaticos
Ejercicios matenaticosEjercicios matenaticos
Ejercicios matenaticos
 
Proyecto final de curso
Proyecto final de cursoProyecto final de curso
Proyecto final de curso
 
Coleccion problemas-de-ia
Coleccion problemas-de-iaColeccion problemas-de-ia
Coleccion problemas-de-ia
 
Colabora2
Colabora2Colabora2
Colabora2
 
2 vectores matrices
2 vectores matrices2 vectores matrices
2 vectores matrices
 
2 vectores matrices
2 vectores matrices2 vectores matrices
2 vectores matrices
 
Javascript
JavascriptJavascript
Javascript
 
Matematicas avanzadas i y ii 9001
Matematicas avanzadas i y ii 9001Matematicas avanzadas i y ii 9001
Matematicas avanzadas i y ii 9001
 
Breves apuntes matlab5
Breves apuntes matlab5Breves apuntes matlab5
Breves apuntes matlab5
 
Apuntesmatlab
ApuntesmatlabApuntesmatlab
Apuntesmatlab
 
Mas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdfMas_de_400_ejercicios_de_programacion_en (2).pdf
Mas_de_400_ejercicios_de_programacion_en (2).pdf
 
Mas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdfMas_de_400_ejercicios_de_programacion_en (1).pdf
Mas_de_400_ejercicios_de_programacion_en (1).pdf
 
Act5 parte a-b-c-carojuan
Act5 parte a-b-c-carojuanAct5 parte a-b-c-carojuan
Act5 parte a-b-c-carojuan
 
Programacion matlab
Programacion matlabProgramacion matlab
Programacion matlab
 
Taao p1
Taao p1Taao p1
Taao p1
 
Módulo autoinstruccionalrelacionesyfunciones
Módulo autoinstruccionalrelacionesyfuncionesMódulo autoinstruccionalrelacionesyfunciones
Módulo autoinstruccionalrelacionesyfunciones
 
Clasificador Caracteres Logsig Tansig
Clasificador Caracteres Logsig TansigClasificador Caracteres Logsig Tansig
Clasificador Caracteres Logsig Tansig
 
Sobre rectas y funciones lineales
Sobre rectas y funciones linealesSobre rectas y funciones lineales
Sobre rectas y funciones lineales
 

Más de Maestros Online

Gobernabilidad de tecnologías de información
Gobernabilidad de tecnologías de informaciónGobernabilidad de tecnologías de información
Gobernabilidad de tecnologías de informaciónMaestros Online
 
Simulación de eventos discretos
Simulación de eventos discretosSimulación de eventos discretos
Simulación de eventos discretosMaestros Online
 
El emprendedor y el empresario profesional cert
El emprendedor y el empresario profesional certEl emprendedor y el empresario profesional cert
El emprendedor y el empresario profesional certMaestros Online
 
Derecho bancario, bursátil, litigios, fiscal cert
Derecho bancario, bursátil, litigios, fiscal certDerecho bancario, bursátil, litigios, fiscal cert
Derecho bancario, bursátil, litigios, fiscal certMaestros Online
 
Desarrollo de proyecto en desarrollo internacional cert
Desarrollo de proyecto en desarrollo internacional certDesarrollo de proyecto en desarrollo internacional cert
Desarrollo de proyecto en desarrollo internacional certMaestros Online
 
Desarrollo de proyecto de mercadotecnia digital cert
Desarrollo de proyecto de mercadotecnia digital certDesarrollo de proyecto de mercadotecnia digital cert
Desarrollo de proyecto de mercadotecnia digital certMaestros Online
 
Administración de proyectos de software y java cert
Administración de proyectos de software y java certAdministración de proyectos de software y java cert
Administración de proyectos de software y java certMaestros Online
 
Computación avanzada en java cert
Computación avanzada en java certComputación avanzada en java cert
Computación avanzada en java certMaestros Online
 
Productividad basada en herramientas tecnológicas cert
Productividad basada en herramientas tecnológicas certProductividad basada en herramientas tecnológicas cert
Productividad basada en herramientas tecnológicas certMaestros Online
 
Manejo de la producción y cadena de suministro cert
Manejo de la producción y cadena de suministro certManejo de la producción y cadena de suministro cert
Manejo de la producción y cadena de suministro certMaestros Online
 
Tecnología de los materiales cert
Tecnología de los materiales certTecnología de los materiales cert
Tecnología de los materiales certMaestros Online
 
Desarrollo de proyecto de procesos de manufactura cert
Desarrollo de proyecto de procesos de manufactura certDesarrollo de proyecto de procesos de manufactura cert
Desarrollo de proyecto de procesos de manufactura certMaestros Online
 
Esquemas de retiro y protección financiera cert
Esquemas de retiro y protección financiera certEsquemas de retiro y protección financiera cert
Esquemas de retiro y protección financiera certMaestros Online
 
Análisis financiero y esquemas de financiamiento cert
Análisis financiero y esquemas de financiamiento certAnálisis financiero y esquemas de financiamiento cert
Análisis financiero y esquemas de financiamiento certMaestros Online
 
Crédito, riesgo, inversiones y seguros cert
Crédito, riesgo, inversiones y seguros certCrédito, riesgo, inversiones y seguros cert
Crédito, riesgo, inversiones y seguros certMaestros Online
 
Manufactura esbelta cert
Manufactura esbelta certManufactura esbelta cert
Manufactura esbelta certMaestros Online
 
Desarrollo de proyecto de psicología organizacional cert
Desarrollo de proyecto de psicología organizacional certDesarrollo de proyecto de psicología organizacional cert
Desarrollo de proyecto de psicología organizacional certMaestros Online
 
Probabilidad y estadísticas descriptiva ebc
Probabilidad y estadísticas descriptiva ebcProbabilidad y estadísticas descriptiva ebc
Probabilidad y estadísticas descriptiva ebcMaestros Online
 
El emprendedor y la innovación cert
El emprendedor y la innovación certEl emprendedor y la innovación cert
El emprendedor y la innovación certMaestros Online
 

Más de Maestros Online (20)

Gobernabilidad de tecnologías de información
Gobernabilidad de tecnologías de informaciónGobernabilidad de tecnologías de información
Gobernabilidad de tecnologías de información
 
Simulación de eventos discretos
Simulación de eventos discretosSimulación de eventos discretos
Simulación de eventos discretos
 
El emprendedor y el empresario profesional cert
El emprendedor y el empresario profesional certEl emprendedor y el empresario profesional cert
El emprendedor y el empresario profesional cert
 
Derecho bancario, bursátil, litigios, fiscal cert
Derecho bancario, bursátil, litigios, fiscal certDerecho bancario, bursátil, litigios, fiscal cert
Derecho bancario, bursátil, litigios, fiscal cert
 
Desarrollo de proyecto en desarrollo internacional cert
Desarrollo de proyecto en desarrollo internacional certDesarrollo de proyecto en desarrollo internacional cert
Desarrollo de proyecto en desarrollo internacional cert
 
Desarrollo de proyecto de mercadotecnia digital cert
Desarrollo de proyecto de mercadotecnia digital certDesarrollo de proyecto de mercadotecnia digital cert
Desarrollo de proyecto de mercadotecnia digital cert
 
Administración de proyectos de software y java cert
Administración de proyectos de software y java certAdministración de proyectos de software y java cert
Administración de proyectos de software y java cert
 
Computación avanzada en java cert
Computación avanzada en java certComputación avanzada en java cert
Computación avanzada en java cert
 
Productividad basada en herramientas tecnológicas cert
Productividad basada en herramientas tecnológicas certProductividad basada en herramientas tecnológicas cert
Productividad basada en herramientas tecnológicas cert
 
Manejo de la producción y cadena de suministro cert
Manejo de la producción y cadena de suministro certManejo de la producción y cadena de suministro cert
Manejo de la producción y cadena de suministro cert
 
Tecnología de los materiales cert
Tecnología de los materiales certTecnología de los materiales cert
Tecnología de los materiales cert
 
Desarrollo de proyecto de procesos de manufactura cert
Desarrollo de proyecto de procesos de manufactura certDesarrollo de proyecto de procesos de manufactura cert
Desarrollo de proyecto de procesos de manufactura cert
 
Esquemas de retiro y protección financiera cert
Esquemas de retiro y protección financiera certEsquemas de retiro y protección financiera cert
Esquemas de retiro y protección financiera cert
 
Análisis financiero y esquemas de financiamiento cert
Análisis financiero y esquemas de financiamiento certAnálisis financiero y esquemas de financiamiento cert
Análisis financiero y esquemas de financiamiento cert
 
Unidad de negocio cert
Unidad de negocio certUnidad de negocio cert
Unidad de negocio cert
 
Crédito, riesgo, inversiones y seguros cert
Crédito, riesgo, inversiones y seguros certCrédito, riesgo, inversiones y seguros cert
Crédito, riesgo, inversiones y seguros cert
 
Manufactura esbelta cert
Manufactura esbelta certManufactura esbelta cert
Manufactura esbelta cert
 
Desarrollo de proyecto de psicología organizacional cert
Desarrollo de proyecto de psicología organizacional certDesarrollo de proyecto de psicología organizacional cert
Desarrollo de proyecto de psicología organizacional cert
 
Probabilidad y estadísticas descriptiva ebc
Probabilidad y estadísticas descriptiva ebcProbabilidad y estadísticas descriptiva ebc
Probabilidad y estadísticas descriptiva ebc
 
El emprendedor y la innovación cert
El emprendedor y la innovación certEl emprendedor y la innovación cert
El emprendedor y la innovación cert
 

Último

la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 

Último (20)

la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 

Estructura de datos avanzada

  • 1. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com Pide una cotización a nuestros correos. Maestros Online Estructura de datos avanzada Apoyo en ejercicios Servicio de asesorías y solución de ejercicios Ciencias_help@hotmail.com www.maestronline.com
  • 2. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com Ejercicio Supon que se está diseñando el módulo de procesamiento de un sistema para manipulación de gráficos. En este caso te han asignado manipular los siguientes poliedros tridimensionales:  Tetraedro  Cubo  Octaedro Las actividades a realizar son las siguientes: o Define las estructuras necesarias para representar los objetos dados. o Diseña un programa en lenguaje C que solicite las coordenadas de los vértices de los tres objetos. o Diseña un menú, una vez que cuentas con las coordenadas de los objetos, en el cual se puedan elegir las siguientes operaciones a realizar sobre los poliedros:  Traslación: Se deberán proporcionar la traslación en dirección del eje X, la traslación en dirección del eje Y, y la traslación en dirección del eje Z.  Rotación: Se deberá proporcionar el ángulo en radianes a rotar. Además, deberá indicarse alrededor de qué eje del espacio tridimensional se lleva a cabo la rotación: X, Y o Z.  Escalamiento: Se deberán proporcionar el escalamiento en dirección del eje X, el escalamiento en dirección del eje Y, y el escalamiento en dirección del eje Z. o Presenta los nuevos valores de sus coordenadas, al momento en que los objetos han sido transformados de acuerdo a la operación elegida. Ejercicio 1.-Escribe un programa en lenguaje C que combine dos listas encadenadas cuyos nodos contienen enteros. Los enteros en las listas deberán estar ordenados de manera ascendente. Diseña una función combinar que recibe los apuntadores al primer nodo de cada una de las listas. La función deberá retornar como parámetro de salida un apuntador al primer nodo de la nueva lista combinada. Obviamente la lista combinada tiene sus elementos ordenados de manera ascendente. Realiza la operación de eliminación de listas, verificación de lista vacía y 2.- realiza consultas. www.maestronline.com
  • 3. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com Ejercicio Considera el siguiente grafo G:  Muestra sus listas de adyacencias.  Muestra el orden en que los vértices de G son procesados al usar el algoritmo de búsqueda por profundidad comenzando por el vértice C (también incluye todos los estados de la pila y el estatus de cada vértice durante la ejecución del algoritmo). Ahora considera la siguiente versión en pseudocódigo del algoritmo para la búsqueda por profundidad (en donde los arreglos color, P, f, d y la variable time son globales): DEPTH_FIRST_SEARCH(G) { Por cada vértice u en V(G) { color[u] = White P[u] = Null } time = 0 Por cada vértice u en V(G) { Si color[u] = White entonces { DEPTH_FIRST_SEARCH_Visit(u) } } } DEPTH_FIRST_SEARCH_Visit(u) { color[u] = Gray d[u] = time time = time + 1 Por cada vértice v en Adj[u] { Si color[v] = White entonces { P[v] = u DEPTH_FIRST_SEARCH_Visit(v) } www.maestronline.com
  • 4. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com } color[u] = Black f[u] = time time = time + 1 } Aplica esta versión de la búsqueda por profundidad al grafo G dado: o Compara las salidas obtenidas por los dos algoritmos. o Discute las diferencias entre los dos procedimientos dados. o ¿Existe de manera explicita una pila en el nuevo algoritmo dado? Justifica tu respuesta. Ejercicio Tu actividad consistirá de los siguientes puntos, los cuales deberán estar conjuntados en un sistema programado en lenguaje C (reutiliza funciones de la Actividad Integradora del Módulo 2):  En primer lugar, solicita al usuario que introduzca un grafo de n vértices en donde el valor de n lo define precisamente su usuario. Una vez que cuente con el valor de n, el usuario deberá introducir el grafo. Los vértices en el grafo serán etiquetados como 1, 2, 3, …, n. El proceso de introducción de grafo será llevado a efecto al preguntar, por cada vértice, los vértices con los cuales comparte una arista. Por ejemplo: Programa Usuario ¿Cuántos vértices son vecinos del vértice 2? 4 Introduce la etiqueta de vecino del vértice 2: 1 Introduce la etiqueta de vecino del vértice 2: 3 Introduce la etiqueta de vecino del vértice 2: 4 Introduce la etiqueta de vecino del vértice 2: 5 ¿Cuántos vértices son vecinos del vértice 3? …  Diseña una estructura autorreferenciada nodoVertice la cual tendrá tres miembros: El primer miembro será un entero, el segundo miembro será el primer elemento de una lista encadenada del tipo NODO_LISTA_PTR mientras que el tercer miembro será un enlace para conectarse con otro nodo del tipo nodoVertice. Es decir, programarás una lista encadenada en la que cada nodo tendrá también una lista encadenada aunque ésta última será con nodos del tipo NODO_LISTA_PTR. La finalidad es que representes al grafo que el usuario introduzca mediante listas de adyacencias tal como se definió en la sesión 6. Por ejemplo, considera el siguiente grafo: www.maestronline.com
  • 5. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com Adj 1 à 2 à 5 2 à 1 à 3 à 4 à 5 3 à 2 à 4 4 à 2 à 5 à 3 5 à 1 à 2 à 4 Tal grafo tiene cinco vértices (n = 5). Por lo tanto, la lista encadenada Adj tendrá en total cinco nodos del tipo NODO_VERTICE_PTR. Considera al nodo 4. Tal nodo tiene en su primer miembro el valor 4 (la etiqueta del vértice), el primer elemento de la lista encadenada conformada por 2, 5, y 3; y finalmente su enlace que apunta al nodo con valor 5 de la lista Adj.  Una vez que se tenga en memoria el grafo dado por el usuario, se le deberá solicitar que indique un vértice inicial. Dado el vértice inicial se deberá realizar una búsqueda por amplitud sobre el grafo dado. Para este efecto programa el pseudocódigo analizado en la sesión 9. Diseña una estructura autorreferencia nodoCola la cual tendrá tres miembros: Dos de los miembros serán enteros mientras que el tercer miembro será un enlace para conectarse con otro nodo del tipo nodoCola. El primer miembro entero deberá guardar la etiqueta de un vértice mientras que el segundo miembro entero guardará el STATUS del vértice. Tal cola será auxiliar en el algoritmo para la búsqueda por amplitud.  Una vez que la búsqueda ha sido realizada se deberá presentar al usuario el resultado correspondiente. Utiliza únicamente las estructuras de datos dinámicas que se le solicitan. El programa que diseñaráa no requiere de la declaración ni uso de arreglos. Ejercicio Muestra el árbol de búsqueda binaria que se obtiene al insertar los siguientes elementos: 5, 9, -10, 11, 20, 14, 3, 2, 6, 7, 12, 15, -6, -1, 0, 1, 4, 13. Inserta los enteros de la lista procediendo de izquierda a derecha (es decir, el número 5 será el nodo raíz del árbol resultante). Realiza “corridas de escritorio” a fin de mostrar cómo se recorrería el árbol que ha construido y listarían sus elementos de acuerdo a: 1. La función inOrder 2. La función preOrder 3. La función postOrder Muestra claramente cómo se van realizado las llamadas recursivas. www.maestronline.com
  • 6. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com Ejercicio Se tienen n puntos pi = (xi, yi) dentro de un círculo de radio igual a uno y con centro en el origen tales que (xi2 + yi2) Î (0, 1] para i = 1, 2, 3, …, n. Supón que los puntos están uniformemente distribuidos, i.e., la probabilidad de encontrar un punto en cualquier región del círculo es proporcional al área de tal región. Modifica al algoritmo Bucket Sort para ordenar a los n puntos de acuerdo a sus distancias del origen (Hint: Rediseña el proceso de división del intervalo [0, 1) en el algoritmo a fin de que reflejes la distribución de los puntos en un círculo unitario). Ejercicio Considera el siguiente arreglo ordenado: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A 12 14 20 21 22 40 50 60 70 100 121 122 125 127 128 Realiza “corridas de escritorio” del algoritmo de Búsqueda binaria para responder a las siguientes preguntas: 1. Sea x = 127 ¿Está x en el arreglo A? 2. Sea x = 55 ¿Está x en el arreglo A? 3. Sea x = 12 ¿Está x en el arreglo A? Presenta los valores de las variables e indique el subarreglo de búsqueda durante cada llamada recursiva. Práctica integradora opción 1: Un grafo G está conectado si existe una ruta entre cualesquiera de sus dos vértices y un circuito es una ruta cerrada de longitud mayor o igual a 3 en la cual todos los vértices son distintos excepto el inicial y el final. Recuerda que a un grafo T se le llama árbol si es conectado y T no tiene circuitos. Si un grafo G no es conectado y no tiene circuitos, entonces se le llama bosque. El árbol que consiste de un solo vértice sin aristas (i.e. el grafo trivial) es llamado árbol degenerado. Los siguientes son ejemplos de árbol (a) y bosque (b). www.maestronline.com
  • 7. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com a b Un subgrafo T de un grafo conectado G es llamado un árbol de expansión de G si T es un árbol y T incluye a todos los vértices de G. A continuación se presenta un grafo G y tres posibles árboles de expansión T1, T2 y T3 de G: G T1 T2 T3 Supón que G es un grafo conectado pesado. Es decir, a cada arista de G le es asignado un número no negativo llamado el peso de la arista. Entonces a cualquier árbol de expansión T de G le es asignado un peso total obtenido al sumar los pesos de las aristas en T. Un árbol de expansión mínimo de G es un árbol de expansión cuyo peso total es tan pequeño como sea posible. El siguiente pseudocódigo permitirá encontrar el árbol de expansión mínimo T de un grafo conectado pesado G en donde G tiene n vértices (en tal caso, T deberá tener n-1 arisas). MINIMUM_SPANNING_TREE(G, n) { o Ordenar las aristas de G en orden decreciente respecto a su peso. o Proceder secuencialmente, borrar cada arista que no desconecte al grafo hasta que se conserven n-1 aristas. } www.maestronline.com
  • 8. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com El peso de un árbol de expansión mínimo es único, pero el árbol de expansión mínimo no lo es. Se pueden obtener diferentes árboles de expansión mínimos cuando dos o más aristas tienen el mismo peso. Considérese el siguiente grafo G: En donde: V= {A, B, C, D, E ,F} E = {{B,C}, {A,F}, {A,C}, {B,E}, {C,E}, {B,F}, {A,E}, {D,F}, {B,D}} y w({B,C})= 8, w({A,F})= 7, w({A,C})= 7, w({B,E})= 7, w({C,E})= 6, w({B,F})= 5, w({A,E})= 4, w({D,F})= 4, w({B,D})= 3. Se aplicará el algoritmo a fin de encontrar un árbol de expansión mínimo. Primero se ordenan las aristas en orden decreciente respecto al peso y entonces de manera sucesiva se eliminan aquellas sin desconectar a G hasta que sólo se tengan cinco aristas. Aristas {B,C} {A,F} {A,C} {B,E} {C,E} {B,F} {A,E} {D,F} {B,D} Peso 8 7 7 7 6 5 4 4 2 ¿Eliminar? Si Si Si No No Si Por lo tanto, el árbol de expansión mínimo de G es obtenido y se compone por las aristas: {B,E}, {C,E}, {A,E}, {D,F}, {B,D} El peso de tal árbol es igual a 24 y se muestra a continuación: Cuando el número de aristas y vértices en G es muy grande, el decidir si G está conectado al remover una de sus aristas no es un problema obvio. Actividades:  Avance de práctica integradora (a entregar al finalizar el Módulo 3): www.maestronline.com
  • 9. Servicio de asesoría y resolución de ejercicios ciencias_help@hotmail.com o Implementar en lenguaje C el algoritmo MINIMUM_SPANNING_TREE(G,n) en donde los grafos estarán representados en la computadora mediante listas de adyacencias. o Como ya se comentó, el problema de determinar si un grafo G está conectado al remover una de sus aristas no es trivial, sin embargo existen en la literatura algoritmos que lo solucionan. Busque e implemente en lenguaje C el algoritmo que resuelva el problema dado a fin de que pueda entonces implementar la función MINIMUM_SPANNING_TREE(G,n). Deberá hacer referencia debidamente a las fuentes de información consultadas. Recuerde que los algoritmos implementados deben asumir la representación de un grafo por listas de adyacencias.  Complemento de práctica integradora (a entregar al finalizar el Módulo 4):  Una vez que se cuente con la debida implementación de la función MINIMUM_SPANNING_TREE(G,n) programa un sistema en lenguaje C con las siguientes características:  El sistema deberá solicitar al usuario que proporcione el nombre de un archivo de texto que contiene la especificación de su grafo. En el archivo se deberán indicar: el conjunto de vértices del grafo, el conjunto de aristas y los pesos de cada arista. Un ejemplo de archivo de entrada sería el siguiente:  {A, B, C, D, E ,F} {{B,C}, {A,F}, {A,C}, {B,E}, {C,E}, {B,F}, {A,E}, {D,F}, {B,D}} w({B,C})= 8 w({A,F})= 7 w({A,C})= 7 w({B,E})= 7 w({C,E})= 6 w({B,F})= 5 w({A,E})= 4 w({D,F})= 4 w({B,D})= 3  En el primer renglón se indican las etiquetas de los vértices del grafo. En el segundo renglón se indican los pares de vértices que definen cada arista del grafo. En el renglón 3 y subsecuentes se indica el peso de cada arista. Cuando se cuente con esta información se deberá representar al grafo con listas de adyacencias y se deberá validar que el grafo de entrada sea conectado, si no lo es entonces el sistema deberá informar al usuario que no puede proceder la búsqueda del árbol de expansión mínimo.  Una vez que se cuenta con el grafo en memoria y éste ha sido validado entonces se procede a buscar el árbol de expansión mínimo. El árbol encontrado deberá ser presentado tanto en pantalla como en un archivo cuyo nombre se deberá solicitar al usuario. Para describir el árbol resultante utilice el formato descrito para los archivos de entrada. www.maestronline.com