Exposicion de estructuras discretas
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Exposicion de estructuras discretas

on

  • 1,950 views

Estructuras discrestas

Estructuras discrestas

Statistics

Views

Total Views
1,950
Views on SlideShare
428
Embed Views
1,522

Actions

Likes
0
Downloads
1
Comments
0

6 Embeds 1,522

http://www39.jimdo.com 725
http://jcdelacruz.jimdo.com 379
http://www23.jimdo.com 160
http://jcdlcs.jimdo.com 103
http://www45.jimdo.com 97
http://kabodradio.jimdo.com 58

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Exposicion de estructuras discretas Presentation Transcript

  • 1. Curso : Estructuras DiscretasProfesor: Jonny Albitres InfanteIntegrantes: Diego Nicho Alvares Julio De la Cruz Santisteban Carlos Pujada Narro Hans Rojas Pacheco
  • 2. ARBOLES ENRAIZADOS• Árbol es el nombre que se le da a un grupo versátil de estructuras de datos.Se pueden utilizar para implementar un número de interfaces abstractas, incluida la interfaz List, pero las aplicaciones en las que resultan más útiles emplean estructuras de ramas de árboles para representar alguna propiedad de los elementos de los datos o para optimizar ciertos métodos. Por ejemplo, los árboles de juegos Minimax se suelen utilizar en programas de juegos para Representar la forma en que las posiciones de la clasificación se multiplican a partir de una situación original.
  • 3. ÁRBOLES, NODOS Y RAÍCES• Un árbol consta de nodos conectados, Cada árbol (salvo un árbol vacío degenerado) cuenta con un nodo distinguido llamado raíz. No puede haber rutas circulares en las conexiones de un árbol, de tal forma que sólo puede existir una ruta única desde cada nodo hasta la raíz.
  • 4. NODOS HIJOS Y PADRESTodos los nodos conectados a un nodo concretoson hijos o bien el padre de dicho nodo. Si el nodoconectado se encuentra en la única ruta a laraíz, dicho nodo recibe el nombre de padre. Todoslos nodos, salvo la raíz, tienen un único padre. Elresto de nodos conectados a un nodo concreto sonlos hijos del nodo.
  • 5. Antecesores, descendientes y subárboles• Los nodos que se encuentran en la ruta que va desde un nodo a la raíz reciben el nombre de antecesores del nodo e incluyen a su padre, al padre de su padre, etc., hasta llegar a la raíz.• El conjunto de nodos que incluyen a los hijos del nodo, a los hijos del hijo, etc., reciben el nombre de descendientes del nodo. Un nodo y sus descendientes forman un subárbol enraizado a dicho nodo. Un nodo sin hijos recibe el nombre de hoja.
  • 6. CODIFICACIÓN DE LOS ALGORITMOS• La principal razón para que las personas aprendan lenguajes de programación es utilizar un ordenador como una herramienta para la resolución de problemas• Tres fases pueden ser identificadas en el proceso de resolución:• Fase de Identificación (qué nos plantean)• Fase de resolución del problema• Fase de implementación (realización) en un lenguaje de programación
  • 7. ANÁLISIS DEL PROBLEMA• Entrada:• Información dada al algoritmo.• Proceso:• Operaciones o cálculos necesarios para encontrar la solución del problema.-• Salida:• Respuestas dadas por el algoritmo o resultadosfinalesde los procesos realizados. Como ejemplo supongamos que desea desarrollar un algoritmo que calcule la superficie de un rectángulo proporcionándole su base y altura. Lo primero que debemos hacer es plantearnos las siguientes preguntas:• Especificaciones de entrada ¿Que datos son de entrada? ¿Cuántos datos se introducirán? ¿Cuántos son datos de entrada válidos? Especificaciones de salida ¿Cuáles son los datos de salida? ¿Cuántos datos de salida se producirán? ¿Qué formato y precisión tendrán los resultados?
  • 8. • El algoritmo que podemos utilizar es el siguiente:• -Paso 1. Entrada desde el teclado, de los datos de base y altura.• -Paso2. Cálculo de la superficie, multiplicando la base por la altura.• -Paso 3. Salida por pantalla de base, altura y superficie calculada. El lenguaje algorítmico debe ser independiente de cualquier lenguaje de programación particular, pero fácilmente traducible a cada uno de ellos. Alcanzar estos objetivos conducirá al empleo de• Métodos normalizados para la representación de algoritmos, tales como los diagramas de flujo o pseudocódigo.
  • 9. ALGORITMO DE RECORRIDO BFS Y DFS• Algoritmo de recorrido BFSLa búsqueda en anchura (o búsqueda enamplitud), llamada Breadth First Search en inglés, es unalgoritmo usado para recorrer o buscar elementos en unaestructura de datos como los árboles y los grafos (aunquenosotros nos centremos ahora mismo en los árboles).Pertenece al grupo de las búsquedas no informadas (sinheurísticas). Su procedimiento consiste en ir visitandotodos los nodos de un nivel antes de proceder con elsiguiente nivel tal y como mostramos en la siguientefigura (los números en naranja indican el orden deexploración de los nodos)
  • 10. • De modo que lo primero que hará será visitar la raíz, luego los hijos de la raíz, luego los hijos de cada uno de estos hijos y así sucesivamente. ¿Cómo hacemos esto para que funcione, pensaréis? La respuesta es sencilla: usar una cola como estructura de datos auxiliar.• Una cola es una estructura FIFO (First In, First Out) en la que sólo disponemos de dos operaciones: insertar al final de la cola y extraer del principio de la cola. Por tanto, el elemento que entra el último será el último en salir. Como hemos elegido Java como lenguaje de programación para esta entrada, disponemos ya de la interfaz Queue<E> y la clase LinkedList<E> que nos van a brindar la funcionalidad de las colas sin programar nada.
  • 11. Algoritmo de recorrido DFS• La búsqueda en profundidad, llamada Depth First Search en inglés, es un algoritmo usado para recorrer o buscar elementos en un árbol o un grafo y pertenece al grupo de las búsquedas no informadas (sin heurísticas). Su procedimiento consiste en visitar todos los nodos de forma ordenada pero no uniforme en un camino concreto, dejando caminos sin visitar en su proceso. Una vez llega al final del camino vuelve atrás hasta que encuentra una bifurcación que no ha explorado, y repite el proceso hasta acabar el árbol (esto se conoce como backtracking). En la siguiente figura mostramos el orden de visita, siendo los números en naranja dicho orden:
  • 12. Como vemos, la búsqueda en profundidad busca el elemento por el camino demáxima profundidad y cuando éste se acaba, vuelve al último nodo que habíavisitado con caminos posibles (caminos abiertos).
  • 13. • VENTAJAS DE LA BÚSQUEDA EN PROFUNDIDAD• -Es completa si no existen ciclos repetidos.• -Tiene menor complejidad en espacio que la búsqueda en anchura, porque solo mantenemos en memoria un camino simultáneamente.• INCONVENIENTES DE LA BÚSQUEDA EN PROFUNDIDAD:• -No es óptima.• -Puede no encontrar la solución aunque exista si hay caminos infinitos. Luego no es completa.