SlideShare una empresa de Scribd logo
1 de 20
UNIDAD 4 Estructuras no lineales
4.1. Árboles. Los arboles representan las estructuras no lineales y dinámicas de datos más importantes en computación . Dinámicas porque las estructuras de árbol pueden cambiar durante la ejecución de un programa. No lineales, puesto que a cada elemento del árbol pueden seguirle varios elementos. Los arboles pueden ser construidos con estructuras estáticas y dinámicas. Las estáticas son arreglos, registros y conjuntos, mientras que las dinámicas están representadas por listas. Los arboles tienen una gran variedad de aplicaciones. Por ejemplo, se pueden utilizar para representar fórmulas matemáticas, para organizar adecuadamente la información, para construir un árbol genealógico, para el análisis de circuitos eléctricos y para numerar los capítulos y secciones de un libro.
4.1.1.- Definición En ciencias de la informática, un árbol es una estructura de datos ampliamente usada que imita la forma de un árbol (un conjunto de nodos conectados).  RAIZ O NODO PADRE: El nodo principal del cual salen los hijos. HIJOS: Son todos los que descienden de un nodo Padre. Hojas: Es un nodo que no tiene hijos.
4.1.2 Representación en memoria de árboles Hay dos formas tradicionales de representar un árbol binario en                      memoria: ,[object Object]
Por medio de arreglos. Los nodos del árbol binario serán representados como registros que contendrán como mínimo tres campos. En un campo se almacenará la información del nodo. Los dos restantes se utilizarán para apuntar al subárbol izquierdo y derecho del subárbol en cuestión. Cada nodo se representa gráficamente de la siguiente manera:
Procedimiento crear(q:nodo)  Inicio  mensaje("Rama izquierda?")  lee(respuesta)  si respuesta = "si" entonces  new(p)  q(li) <-- nil crear(p)  en caso contrario  q(li) <-- nil mensaje("Rama derecha?")  lee(respuesta) si respuesta="si" entonces  new(p)  q(ld)<--p  crear(p)  en caso contrario  q(ld) <--nil fin  INICIO  new(p)  raiz<--p  crear(p)  FIN El algoritmo de creación de un árbol binario es el siguiente:
4.1.2 Representación en memoria de árboles Los árboles binarios también pueden ser almacenados como una estructura de datos implícita en vectores, y si el árbol es un árbol binario completo, este método no desaprovecha el espacio en memoria. Tomaremos como notación la siguiente:  Si un nodo tiene un índice i, sus hijos se encuentran en índices 2i + 1 y 2i + 2, mientras que sus padres (si los tiene) se encuentra en el índice (partiendo de que la raíz tenga índice cero). Este método tiene como ventajas el tener almacenados los datos de forma más compacta y por tener una forma más rápida y eficiente de localizar los datos en particular durante un Preodentransversal. Sin embargo, desperdicia mucho espacio en memoria.  
4.1.2.1 Árboles generales En un árbol general cada nodo puede poseer un número indeterminado de hijos. La implementación de los nodos en este caso se realiza de la siguiente manera: como no se sabe de antemano cuantos hijos tiene un nodo en particular se utilizan dos referencias, una a su primer hijo y otra a su hermano más cercano. La raíz del árbol necesariamente tiene la referencia a su hermano como null.
Nótese que todo árbol general puede representarse como un árbol binario, con la salvedad que el hijo derecho de la raíz es siempre null. Si se permite que la raíz del árbol tenga hermanos, lo que se conoce como bosque, entonces se tiene que el conjunto de los bosques generales es isomorfo al conjunto de los árboles binarios. En efecto, las propiedades vistas en los árboles binarios se siguen cumpliendo en los árboles generales.
4.1.2.2 Árbol binario Un árbol de búsqueda binaria es una estructura apropiada para muchas de las aplicaciones que se han discutido anteriormente con listas. La ventaja especial de utilizar un árbol es que se facilita la búsqueda.  Un árbol binario de búsqueda es aquel en el que el hijo de la izquierda (si existe) de cualquier nodo contiene un valor más pequeño que el nodo padre, y el hijo de la derecha (si existe) contiene un valor más grande que el nodo padre. Un ejemplo de árbol binario de búsqueda es el siguiente:
4.1.3 Recorridos de un árbol binario. Nos sirve para realizar la obtención de la notación Polaca, para pasarlo a la unidad Aritmética Lógica para poder interpretar operaciones. 4.1.3.1 Preorden 4.1.3.2 Inorden 4.1.3.3 Postorden:
Preorden: ABDGEHICFJK Inorden: GDBHEIACJKF  Postorden: GDHIEBKJFCA
4.2 Grafos Definición Un grafo es la unidad abstracta que comprende el conjunto de grafías de una letra. La palabra tiene origen griego y significa “dibujo” o “imagen”. Para las matemáticas y las ciencias de la computación, un grafo es el principal objeto de estudio de la teoría de grafos. De esta forma, un grafo se representa gráficamente como un conjunto de puntos (llamados vértices o nodos), unidos por líneas (aristas). Los grafos permiten estudiar las interrelaciones entre unidades que se encuentran en interacción.
La terminología que manejaremos regularmente para el uso de grafos es la siguiente: ,[object Object]
LONGITUD DE CAMINO. Es el número de arcos en ese camino.
CAMINO SIMPLE. Es cuando todos sus vértices, excepto tal vez el primero y el último son distintos.
CICLO SIMPLE. Es un camino simple de longitud por lo menos de uno que empieza y termina en el mismo vértice.
ARISTAS PARALELAS. Es cuando hay más de una arista con un vértice inicial y uno terminal dados. ,[object Object]
GRAFO ACICLICO. Se dice que un grafo es a cíclico cuando no contiene ciclos.
GRAFO CONEXO. Un grafo G es conexo, si y solo si existe un camino simple en cualesquiera dos nodos de G.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Isomorfos y arboles
Isomorfos y arbolesIsomorfos y arboles
Isomorfos y arboles
 
Arboles
ArbolesArboles
Arboles
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 
Arboles
ArbolesArboles
Arboles
 
Presentación1 grafos
Presentación1 grafosPresentación1 grafos
Presentación1 grafos
 
Arboles v2
Arboles v2Arboles v2
Arboles v2
 
Árboles Binarios y Grafos
Árboles Binarios  y GrafosÁrboles Binarios  y Grafos
Árboles Binarios y Grafos
 
Teoría de grafos
Teoría de grafosTeoría de grafos
Teoría de grafos
 
Grafos
GrafosGrafos
Grafos
 
Arboles ppt
Arboles pptArboles ppt
Arboles ppt
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Teoria de grafos
Teoria de grafosTeoria de grafos
Teoria de grafos
 
Arboles presentacion
Arboles presentacionArboles presentacion
Arboles presentacion
 
grafos conexos
grafos conexosgrafos conexos
grafos conexos
 
Arboles
ArbolesArboles
Arboles
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Grafos - Figuras Planas
Grafos - Figuras PlanasGrafos - Figuras Planas
Grafos - Figuras Planas
 
Trabajo estructura de_datos
Trabajo estructura de_datosTrabajo estructura de_datos
Trabajo estructura de_datos
 
Teoria de grafos
Teoria de grafosTeoria de grafos
Teoria de grafos
 
Algoritmos de kruskal y prim
Algoritmos de kruskal y primAlgoritmos de kruskal y prim
Algoritmos de kruskal y prim
 

Destacado

Nouveaux membrex CEG : les clés de votre réussite !
Nouveaux membrex CEG : les clés de votre réussite !Nouveaux membrex CEG : les clés de votre réussite !
Nouveaux membrex CEG : les clés de votre réussite !Elise Macé
 
Le record de minecraft 3ds a bref ete battu
Le record de minecraft 3ds a bref ete battuLe record de minecraft 3ds a bref ete battu
Le record de minecraft 3ds a bref ete battuminecraftsur3ds590
 
El agua como recurso
El agua como recursoEl agua como recurso
El agua como recursoJulio Sanchez
 
Petits mots de voisins
Petits mots de voisinsPetits mots de voisins
Petits mots de voisinsciffer louis
 
Présent-Absent
Présent-AbsentPrésent-Absent
Présent-AbsentMarco Remy
 
Seevibes - MEDIA'DAYS 2015
Seevibes - MEDIA'DAYS 2015Seevibes - MEDIA'DAYS 2015
Seevibes - MEDIA'DAYS 2015CoralieSDC
 
Cincinnatus, un modèle possible pour Maximus ?
Cincinnatus, un modèle possible pour Maximus ?Cincinnatus, un modèle possible pour Maximus ?
Cincinnatus, un modèle possible pour Maximus ?Polyxenia66
 
El Mundo Del FúTbol
El Mundo Del FúTbolEl Mundo Del FúTbol
El Mundo Del FúTbolcanosa10
 
Diaporama îles
Diaporama îlesDiaporama îles
Diaporama îlespatl3fle
 

Destacado (20)

Labeaume ardèche
Labeaume ardècheLabeaume ardèche
Labeaume ardèche
 
Nouveaux membrex CEG : les clés de votre réussite !
Nouveaux membrex CEG : les clés de votre réussite !Nouveaux membrex CEG : les clés de votre réussite !
Nouveaux membrex CEG : les clés de votre réussite !
 
RIPng
RIPngRIPng
RIPng
 
VIVAEntreprise
VIVAEntrepriseVIVAEntreprise
VIVAEntreprise
 
Tema 5
Tema 5Tema 5
Tema 5
 
Le record de minecraft 3ds a bref ete battu
Le record de minecraft 3ds a bref ete battuLe record de minecraft 3ds a bref ete battu
Le record de minecraft 3ds a bref ete battu
 
El agua como recurso
El agua como recursoEl agua como recurso
El agua como recurso
 
Témoignage agrimetal (62)
Témoignage agrimetal (62)Témoignage agrimetal (62)
Témoignage agrimetal (62)
 
Part 8
Part 8Part 8
Part 8
 
Tema 3 enlace
Tema 3 enlace Tema 3 enlace
Tema 3 enlace
 
Petits mots de voisins
Petits mots de voisinsPetits mots de voisins
Petits mots de voisins
 
Le monde de google
Le monde de google Le monde de google
Le monde de google
 
Présent-Absent
Présent-AbsentPrésent-Absent
Présent-Absent
 
Seevibes - MEDIA'DAYS 2015
Seevibes - MEDIA'DAYS 2015Seevibes - MEDIA'DAYS 2015
Seevibes - MEDIA'DAYS 2015
 
Montréal
MontréalMontréal
Montréal
 
Officeadrian
OfficeadrianOfficeadrian
Officeadrian
 
Cincinnatus, un modèle possible pour Maximus ?
Cincinnatus, un modèle possible pour Maximus ?Cincinnatus, un modèle possible pour Maximus ?
Cincinnatus, un modèle possible pour Maximus ?
 
El Mundo Del FúTbol
El Mundo Del FúTbolEl Mundo Del FúTbol
El Mundo Del FúTbol
 
Tema 6
Tema 6Tema 6
Tema 6
 
Diaporama îles
Diaporama îlesDiaporama îles
Diaporama îles
 

Similar a Ascii

Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesAngel Vázquez Patiño
 
Presentación1 grafos
Presentación1 grafosPresentación1 grafos
Presentación1 grafosozilricardo
 
Trabajo estructura de_datos
Trabajo estructura de_datosTrabajo estructura de_datos
Trabajo estructura de_datosvicmz
 
Trabajo estructura de_datos2
Trabajo estructura de_datos2Trabajo estructura de_datos2
Trabajo estructura de_datos2vicmz
 
TRABAJO DE GRAFOS
TRABAJO DE GRAFOSTRABAJO DE GRAFOS
TRABAJO DE GRAFOSOsirysRock
 
Grafos (angel)[1]
Grafos (angel)[1]Grafos (angel)[1]
Grafos (angel)[1]ozilricardo
 
Trabajo estructura de_datos_subir
Trabajo estructura de_datos_subirTrabajo estructura de_datos_subir
Trabajo estructura de_datos_subirvicmz
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de GrafosSandra Biondi
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de GrafosSandra Biondi
 
MATEMATICA_DISCRETA_UNIDAD.pptx
MATEMATICA_DISCRETA_UNIDAD.pptxMATEMATICA_DISCRETA_UNIDAD.pptx
MATEMATICA_DISCRETA_UNIDAD.pptxalan477391
 
Mapa conceptual
Mapa conceptualMapa conceptual
Mapa conceptualhitwinenze
 
Diapo teoria de grafos
Diapo teoria de grafosDiapo teoria de grafos
Diapo teoria de grafosGera Lopez
 

Similar a Ascii (20)

Teoría de grafos
Teoría de grafosTeoría de grafos
Teoría de grafos
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Presentación1 grafos
Presentación1 grafosPresentación1 grafos
Presentación1 grafos
 
Trabajo estructura de_datos
Trabajo estructura de_datosTrabajo estructura de_datos
Trabajo estructura de_datos
 
Trabajo estructura de_datos2
Trabajo estructura de_datos2Trabajo estructura de_datos2
Trabajo estructura de_datos2
 
TRABAJO DE GRAFOS
TRABAJO DE GRAFOSTRABAJO DE GRAFOS
TRABAJO DE GRAFOS
 
Grafos
GrafosGrafos
Grafos
 
Grafos (angel)[1]
Grafos (angel)[1]Grafos (angel)[1]
Grafos (angel)[1]
 
Trabajo estructura de_datos_subir
Trabajo estructura de_datos_subirTrabajo estructura de_datos_subir
Trabajo estructura de_datos_subir
 
Grafos
GrafosGrafos
Grafos
 
Grafos
GrafosGrafos
Grafos
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de Grafos
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de Grafos
 
Grafos
GrafosGrafos
Grafos
 
MATEMATICA_DISCRETA_UNIDAD.pptx
MATEMATICA_DISCRETA_UNIDAD.pptxMATEMATICA_DISCRETA_UNIDAD.pptx
MATEMATICA_DISCRETA_UNIDAD.pptx
 
Mapa conceptual
Mapa conceptualMapa conceptual
Mapa conceptual
 
Grafos
GrafosGrafos
Grafos
 
Diapo teoria de grafos
Diapo teoria de grafosDiapo teoria de grafos
Diapo teoria de grafos
 
Grafos
GrafosGrafos
Grafos
 
Grafos
GrafosGrafos
Grafos
 

Ascii

  • 1. UNIDAD 4 Estructuras no lineales
  • 2. 4.1. Árboles. Los arboles representan las estructuras no lineales y dinámicas de datos más importantes en computación . Dinámicas porque las estructuras de árbol pueden cambiar durante la ejecución de un programa. No lineales, puesto que a cada elemento del árbol pueden seguirle varios elementos. Los arboles pueden ser construidos con estructuras estáticas y dinámicas. Las estáticas son arreglos, registros y conjuntos, mientras que las dinámicas están representadas por listas. Los arboles tienen una gran variedad de aplicaciones. Por ejemplo, se pueden utilizar para representar fórmulas matemáticas, para organizar adecuadamente la información, para construir un árbol genealógico, para el análisis de circuitos eléctricos y para numerar los capítulos y secciones de un libro.
  • 3. 4.1.1.- Definición En ciencias de la informática, un árbol es una estructura de datos ampliamente usada que imita la forma de un árbol (un conjunto de nodos conectados). RAIZ O NODO PADRE: El nodo principal del cual salen los hijos. HIJOS: Son todos los que descienden de un nodo Padre. Hojas: Es un nodo que no tiene hijos.
  • 4.
  • 5. Por medio de arreglos. Los nodos del árbol binario serán representados como registros que contendrán como mínimo tres campos. En un campo se almacenará la información del nodo. Los dos restantes se utilizarán para apuntar al subárbol izquierdo y derecho del subárbol en cuestión. Cada nodo se representa gráficamente de la siguiente manera:
  • 6. Procedimiento crear(q:nodo) Inicio mensaje("Rama izquierda?") lee(respuesta) si respuesta = "si" entonces new(p) q(li) <-- nil crear(p) en caso contrario q(li) <-- nil mensaje("Rama derecha?") lee(respuesta) si respuesta="si" entonces new(p) q(ld)<--p crear(p) en caso contrario q(ld) <--nil fin INICIO new(p) raiz<--p crear(p) FIN El algoritmo de creación de un árbol binario es el siguiente:
  • 7. 4.1.2 Representación en memoria de árboles Los árboles binarios también pueden ser almacenados como una estructura de datos implícita en vectores, y si el árbol es un árbol binario completo, este método no desaprovecha el espacio en memoria. Tomaremos como notación la siguiente: Si un nodo tiene un índice i, sus hijos se encuentran en índices 2i + 1 y 2i + 2, mientras que sus padres (si los tiene) se encuentra en el índice (partiendo de que la raíz tenga índice cero). Este método tiene como ventajas el tener almacenados los datos de forma más compacta y por tener una forma más rápida y eficiente de localizar los datos en particular durante un Preodentransversal. Sin embargo, desperdicia mucho espacio en memoria.  
  • 8. 4.1.2.1 Árboles generales En un árbol general cada nodo puede poseer un número indeterminado de hijos. La implementación de los nodos en este caso se realiza de la siguiente manera: como no se sabe de antemano cuantos hijos tiene un nodo en particular se utilizan dos referencias, una a su primer hijo y otra a su hermano más cercano. La raíz del árbol necesariamente tiene la referencia a su hermano como null.
  • 9. Nótese que todo árbol general puede representarse como un árbol binario, con la salvedad que el hijo derecho de la raíz es siempre null. Si se permite que la raíz del árbol tenga hermanos, lo que se conoce como bosque, entonces se tiene que el conjunto de los bosques generales es isomorfo al conjunto de los árboles binarios. En efecto, las propiedades vistas en los árboles binarios se siguen cumpliendo en los árboles generales.
  • 10. 4.1.2.2 Árbol binario Un árbol de búsqueda binaria es una estructura apropiada para muchas de las aplicaciones que se han discutido anteriormente con listas. La ventaja especial de utilizar un árbol es que se facilita la búsqueda. Un árbol binario de búsqueda es aquel en el que el hijo de la izquierda (si existe) de cualquier nodo contiene un valor más pequeño que el nodo padre, y el hijo de la derecha (si existe) contiene un valor más grande que el nodo padre. Un ejemplo de árbol binario de búsqueda es el siguiente:
  • 11. 4.1.3 Recorridos de un árbol binario. Nos sirve para realizar la obtención de la notación Polaca, para pasarlo a la unidad Aritmética Lógica para poder interpretar operaciones. 4.1.3.1 Preorden 4.1.3.2 Inorden 4.1.3.3 Postorden:
  • 12. Preorden: ABDGEHICFJK Inorden: GDBHEIACJKF Postorden: GDHIEBKJFCA
  • 13. 4.2 Grafos Definición Un grafo es la unidad abstracta que comprende el conjunto de grafías de una letra. La palabra tiene origen griego y significa “dibujo” o “imagen”. Para las matemáticas y las ciencias de la computación, un grafo es el principal objeto de estudio de la teoría de grafos. De esta forma, un grafo se representa gráficamente como un conjunto de puntos (llamados vértices o nodos), unidos por líneas (aristas). Los grafos permiten estudiar las interrelaciones entre unidades que se encuentran en interacción.
  • 14.
  • 15. LONGITUD DE CAMINO. Es el número de arcos en ese camino.
  • 16. CAMINO SIMPLE. Es cuando todos sus vértices, excepto tal vez el primero y el último son distintos.
  • 17. CICLO SIMPLE. Es un camino simple de longitud por lo menos de uno que empieza y termina en el mismo vértice.
  • 18.
  • 19. GRAFO ACICLICO. Se dice que un grafo es a cíclico cuando no contiene ciclos.
  • 20. GRAFO CONEXO. Un grafo G es conexo, si y solo si existe un camino simple en cualesquiera dos nodos de G.
  • 21.
  • 22. GRADO DE ENTRADA. El grado de entrada de un nodo V de un grafo G, es el número de aristas que terminan en V.
  • 23. NODO FUENTE. Se le llama así a los nodos que tienen grado de salida positivo y un grado de entrada nulo.
  • 24. NODO SUMIDERO. Se le llama sumidero al nodo que tiene grado de salida nulo y un grado de entrada positivo.
  • 25. GRAFO UNILATERALMENTE CONEXO. Un grafo G es unilateralmente conexo si para cada par de nodos (V,W) de G hay un camino de V a W o un camino de W a V.
  • 26. GRAFO PESADO ó ETIQUETADO. Un grafo es pesado cuando sus aristas contienen datos (etiquetas). Una etiqueta puede ser un nombre, costo ó un valor de cualquier tipo de dato. También a este grafo se le denomina red de actividades, y el número asociado al arco se le denomina factor de peso.
  • 27.
  • 28. 4.2.2 Tipos de Grafos Grafos conexos Un grafo es conexo si cada par de vértices está conectado por un camino; es decir, si para cualquier par de vértices (a, b), existe al menos un camino posible desde a hacia b. Un grafo es fuertemente conexo si cada par de vértices está conectado por al menos dos caminos disjuntos; es decir, es conexo y no existe un vértice tal que al sacarlo el grafo resultante sea disconexo.
  • 29. 4.2.2 Tipos de Grafos Grafos completos Un grafo es completo si existen aristas uniendo todos los pares posibles de vértices. Es decir, todo par de vértices (a, b) debe tener una arista e que los une. El conjunto de los grafos completos es denominado usualmente , siendo el grafo completo de n vértices. es decir, grafo completo de n vértices tiene exactamente aristas. La representación gráfica de los como los vértices de un polígono regular da cuenta de su peculiar estructura.
  • 30. 4.2.2 Tipos de Grafos Grafos bipartitos Un grafo G es bipartito si puede expresarse como (es decir, sus vértices son la unión de dos grupos de vértices), bajo las siguientes condiciones: V1 y V2 son disjuntos y no vacíos. Cada arista de A une un vértice de V1 con uno de V2. No existen aristas uniendo dos elementos de V1; análogamente para V2.
  • 31. 4.2.3 Representación de Grafos en Memoria Existen diferentes formas de almacenar grafos en una computadora. La estructura de datos usada depende de las características del grafo y el algoritmo usado para manipularlo. Entre las estructuras más sencillas y usadas se encuentran las listas y las matrices, aunque frecuentemente se usa una combinación de ambas. Las listas son preferidas en grafos dispersos porque tienen un eficiente uso de la memoria. Por otro lado, las matrices proveen acceso rápido, pero pueden consumir grandes cantidades de memoria.