1 / 32

Estructuras de datos y algoritmos

Estructuras de datos y algoritmos. Oscar Bedoya. oscarbed@eisc.univalle.edu.co http://eisc.univalle.edu.co/~oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Árboles. Caso de implementación: Árboles de búsqueda binaria. Arboles. NodoArbol. izquierdo. dato. derecho. Arboles.

jerold
Download Presentation

Estructuras de datos y algoritmos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Estructuras de datos y algoritmos Oscar Bedoya. oscarbed@eisc.univalle.edu.co http://eisc.univalle.edu.co/~oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C.

  2. Árboles Caso de implementación: Árboles de búsqueda binaria

  3. Arboles NodoArbol izquierdo dato derecho

  4. Arboles NodoArbol

  5. Arboles NodoArbol raíz

  6. Arboles NodoArbol raíz

  7. Arboles NodoArbol raíz

  8. Árboles public class NodoArbol{ NodoArbol izquierdo; int dato; NodoArbol derecho; public NodoArbol (int d) { dato = d; izquierdo = derecho = null; }

  9. Arboles NodoArbol

  10. Arboles NodoArbol Si d es menor que dato, e izquierdo es null, al campo izquierdo le asigno el nodo a insertar

  11. Arboles NodoArbol Si d es menor que dato, e izquierdo es null, al campo izquierdo le asigno el nodo a insertar

  12. Arboles NodoArbol

  13. Arboles NodoArbol Si d es menor que dato, e izquierdo es diferente de null, el problema se reduce ahora a insertar el nodo con el dato d, en el nodo con dato1

  14. Arboles NodoArbol Si d es menor que dato, e izquierdo es diferente de null, el problema se reduce ahora a insertar el nodo con el dato d, en el nodo con dato1

  15. Arboles NodoArbol

  16. Arboles NodoArbol Si d es mayor que dato, y derecha es null, al campo derecha le asigno el nodo a insertar

  17. Arboles NodoArbol Si d es mayor que dato, y derecha es null, al campo derecha le asigno el nodo a insertar

  18. Arboles NodoArbol

  19. Arboles NodoArbol Si d es mayor que dato, y derecho es diferente de null, el problema se reduce ahora a insertar el nodo con el dato d, en el nodo con dato1

  20. Arboles NodoArbol Si d es mayor que dato, y derecho es diferente de null, el problema se reduce ahora a insertar el nodo con el dato d, en el nodo con dato1

  21. Árboles public void insertar (int d) { if (d < dato) { if (izquierdo == null) izquierdo = new NodoArbol(d); else izquierdo.insertar(d); } else if (d > dato) { if (derecho == null) derecho = new NodoArbol(d); else derecho.insertar(d); } }

  22. Arboles ArbolBinario raiz Al crear el árbol binario, se crea el nodo raiz con valores null

  23. Arboles Árbol binario (insertar con raíz vacía) raíz Como la raíz tiene null, a la raíz le asigno el nodo con el nuevo dato

  24. Arboles Árbol binario (insertar con raíz vacía) raíz Como la raíz tiene null, a la raíz le asigno el nodo con el nuevo dato

  25. Arboles Árbol binario (insertar con raíz no vacía) raíz Como la raíz tiene un dato, se deben examinar las posibilidades de insertar el nuevo nodo a la izquierda o a la derecha, esto lo hace el método insertar implementado para cada nodo

  26. Árboles public class ArbolBinario{ private NodoArbol raiz; public ArbolBinario( ) { raiz = null; }

  27. Árboles public void insertarNodo (int d ) { if( raiz == null) raiz = new NodoArbol(d); else raiz.insertar(d); }

  28. Árboles • Recorridos del árbol • Preoden • Inorden • Posorden

  29. Arboles Recorrido Preorden Nodo.dato Preorden(nodo.izquierdo) Preorden(nodo.derecha)

  30. Arboles Recorrido Preorden Si nodo==null return Nodo.dato Preorden(nodo.izquierdo) Preorden(nodo.derecha)

  31. Árboles public void preorden (NodoArbol nodo) { if (nodo == null) return; System.out.print(nodo.dato+" "); preorden(nodo.izquierdo); preorden(nodo.derecho); }

  32. Árboles public void preordenTraversal ( ) { preorden(raiz); }

More Related