PresentaciónEstructuras de Datos No Lineales          Mauricio Paletta     INGENIERÍA EN INFORMÁTICA                  Prog...
DefiniciónSon aquellas que ocupan bloques dememoria no continuos / lineales. Para lidiarcon el problema de la fragmentació...
DefiniciónLas ventajas de las estructuras lineales sondesventajas en las estructuras no lineales yviceversa.Para los enlac...
Listas enlazadasEstructura formada por nodos que se enlazanentre sí partiendo de un nodo inicial cuyareferencia lleva el n...
Listas enlazadasNOTA: La mejor forma de entender estructuras enlazadas es manejar el diagrama de bloques y sus respectivos...
Listas enlazadas            Data    Data          …          Data     NULO Cabecera                                      C...
Listas enlazadas          Programación II
Listas enlazadas          Programación II
Listas enlazadas          Programación II
Listas enlazadas          Programación II
Listas enlazadas          Programación II
Listas enlazadas          Programación II
Conjunto      Programación II
GrafoEstructura formada por un conjunto de nodoso vértices y un conjunto de aristas o lados.A ser usados por cualquier pro...
Grafo    Programación II
Grafo    Programación II
Grafo    Programación II
ÁrbolesTipo particular de grafo acíclico (sin ciclos)formada por nodos en la cual cada uno deellos puede apuntar a uno o v...
ÁrbolesNodo padre: nodo que contiene un apuntadora otros nodos.Nodo hijo: nodo que es apuntado por otronodo.Nodo raíz: sól...
Árboles               Raíz               Padre /                                ascendente                                ...
ÁrbolesOrden: número potencial de hijos que puedetener cada nodo.Grado: número de hijos que tiene el nodo conmás hijos en ...
ÁrbolesTres tipos de recorridos:  1) Preorden: primero raíz y luego hijos     empezando por hijo izquierdo.  2) Postorden:...
Árbol binarioTipo particular de árbol de orden 2 (todo nodotiene un máximo de dos hijos: izquierdo yderecho).             ...
Árbol binario         Programación II
Árbol binario         Programación II
Árbol binarioUn ejemplo muy común es la representaciónde expresiones.                           Preorden:                 ...
Árbol binario         Programación II
Árbol binarioOtro ejemplo es el árbol binario de búsqueda(para nodos con datos enteros o quecontenga una clave que pueda s...
Árbol binarioBuscar un elemento:  • Si el árbol está vacío el elemento no está.  • Si el elemento coincide con el de la ra...
Árbol binarioAgregar un elemento:  • Si el elemento está en el árbol no se agrega.  • Si el elemento no está, éste se inse...
Árbol binarioSuprimir un elemento:  • Si el elemento no está en el árbol no se puede    suprimir.  • Si el elemento está y...
Árbol binario         Programación II
Árbol binario         Programación II
Próxima SlideShare
Cargando en…5
×

Estructuras no-lineales

5.014 visualizaciones

Publicado el

Estructuras no-lineales | Lenguaje C++ | Profesor Mauricio Paletta

1 comentario
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
5.014
En SlideShare
0
De insertados
0
Número de insertados
4
Acciones
Compartido
0
Descargas
153
Comentarios
1
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Estructuras no-lineales

  1. 1. PresentaciónEstructuras de Datos No Lineales Mauricio Paletta INGENIERÍA EN INFORMÁTICA Programación II Coordinación General de PregradoUNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA Programación II
  2. 2. DefiniciónSon aquellas que ocupan bloques dememoria no continuos / lineales. Para lidiarcon el problema de la fragmentación y, sobretodo del crecimiento dinámico.Los bloques deben estar enlazados unos conotros para poder “navegar” por la estructura,es decir, tener acceso a otro(s) dato(s) apartir del actual. Programación II
  3. 3. DefiniciónLas ventajas de las estructuras lineales sondesventajas en las estructuras no lineales yviceversa.Para los enlaces se requiere utilizardirecciones de memoria / apuntadores.Dos tipos de estructuras: 1) Listas enlazadas: simples, dobles. 2) Árboles: binarios, genéricos, grafos. Programación II
  4. 4. Listas enlazadasEstructura formada por nodos que se enlazanentre sí partiendo de un nodo inicial cuyareferencia lleva el nombre de cabecera y unaposible referencia al nodo final o cola.Si cada nodo apunta sólo a su siguiente sedice que la lista enlazada es simple. Sitambién se incluye una referencia al nodoanterior, entonces la lista enlazada es doble. Programación II
  5. 5. Listas enlazadasNOTA: La mejor forma de entender estructuras enlazadas es manejar el diagrama de bloques y sus respectivos enlaces. Perder o no manejar bien un enlace provoca la pérdida de información a partir del bloque correspondiente. Programación II
  6. 6. Listas enlazadas Data Data … Data NULO Cabecera ColaNULO Data Data … Data NULOCabecera Cola Programación II
  7. 7. Listas enlazadas Programación II
  8. 8. Listas enlazadas Programación II
  9. 9. Listas enlazadas Programación II
  10. 10. Listas enlazadas Programación II
  11. 11. Listas enlazadas Programación II
  12. 12. Listas enlazadas Programación II
  13. 13. Conjunto Programación II
  14. 14. GrafoEstructura formada por un conjunto de nodoso vértices y un conjunto de aristas o lados.A ser usados por cualquier problema dondese observa un conjunto de objetos yconexiones entre ellos: mapa de rutas detransporte, red de computadoras,organigrama, diagrama de actividades/prelaciones, etc. Programación II
  15. 15. Grafo Programación II
  16. 16. Grafo Programación II
  17. 17. Grafo Programación II
  18. 18. ÁrbolesTipo particular de grafo acíclico (sin ciclos)formada por nodos en la cual cada uno deellos puede apuntar a uno o varios otrosnodos.De forma recursiva, cada nodo puede apuntara otro árbol (sub-árbol).Entre los nodos se establece una relación deascendencia / descendencia. Programación II
  19. 19. ÁrbolesNodo padre: nodo que contiene un apuntadora otros nodos.Nodo hijo: nodo que es apuntado por otronodo.Nodo raíz: sólo se comporta como padre; élmismo no tiene padre (no es hijo de nadie).Nodo hoja: sólo se comporta como hijo; élmismo no tiene hijos (no es padre de nadie). Programación II
  20. 20. Árboles Raíz Padre / ascendente de G Hijos /descendiente s de B Subárbol Hojas Programación II
  21. 21. ÁrbolesOrden: número potencial de hijos que puedetener cada nodo.Grado: número de hijos que tiene el nodo conmás hijos en el árbol.Nivel de un nodo: nivel de descendencia odistancia a la raíz. El nivel de la raíz es 0.Altura: nivel del nodo de mayor nivel. Programación II
  22. 22. ÁrbolesTres tipos de recorridos: 1) Preorden: primero raíz y luego hijos empezando por hijo izquierdo. 2) Postorden: primero hijos empezando por hijo izquierdo y luego raíz. 3) Inorden: primero hijo izquierdo, luego raíz y finalmente el resto de los hijos. Programación II
  23. 23. Árbol binarioTipo particular de árbol de orden 2 (todo nodotiene un máximo de dos hijos: izquierdo yderecho). Programación II
  24. 24. Árbol binario Programación II
  25. 25. Árbol binario Programación II
  26. 26. Árbol binarioUn ejemplo muy común es la representaciónde expresiones. Preorden: *+12-34 Postorden: 12+34-* Inorden: 1+2*3-4 Programación II
  27. 27. Árbol binario Programación II
  28. 28. Árbol binarioOtro ejemplo es el árbol binario de búsqueda(para nodos con datos enteros o quecontenga una clave que pueda sercomparada): para cada nodo, su valorsiempre es mayor que los valores de losnodos de su descendencia del subárbolizquierdo y menor que los valores de losnodos de su descendencia del subárbolderecho. Programación II
  29. 29. Árbol binarioBuscar un elemento: • Si el árbol está vacío el elemento no está. • Si el elemento coincide con el de la raíz listo. • Si el elemento es menor que el de la raíz se busca en el subárbol izquierdo, caso contrario se busca en el subárbol derecho. Programación II
  30. 30. Árbol binarioAgregar un elemento: • Si el elemento está en el árbol no se agrega. • Si el elemento no está, éste se inserta a continuación del último nodo visitado en la búsqueda, respetando la regla de construcción del árbol, a la izquierda o derecha del nodo dependiendo si el valor a agregar es menor o mayor respectivamente que el del nodo. Programación II
  31. 31. Árbol binarioSuprimir un elemento: • Si el elemento no está en el árbol no se puede suprimir. • Si el elemento está y es un nodo hoja se borra directamente cuidando de que la referencia del nodo padre correspondiente se anule. • Si no es un nodo hoja, hay que buscar el nodo más a la izquierda del subárbol derecho o el más a la derecha del subárbol izquierdo e intercambiar los valores con el nodo (eliminación lógica). • El nodo intercambiado se elimina físicamente. Programación II
  32. 32. Árbol binario Programación II
  33. 33. Árbol binario Programación II

×