1 / 6

Tema 4 Árboles. Utilización de un TAD Arbol.

Tema 4 Árboles. Utilización de un TAD Arbol. Uso del TAD ABB. Especificaciones. public interface Arbol { void crearNodo (); /*Crea un nuevo nodo en el árbol, que queda apuntando a ese nodo*/ int obtenerClave (); /*Devuelve la clave contenida en el nodo del árbol apuntado por Puntero*/

elmo
Download Presentation

Tema 4 Árboles. Utilización de un TAD Arbol.

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. Tema 4 Árboles. Utilización de un TAD Arbol.

  2. Uso del TAD ABB. Especificaciones public interface Arbol { void crearNodo (); /*Crea un nuevo nodo en el árbol, que queda apuntando a ese nodo*/ int obtenerClave (); /*Devuelve la clave contenida en el nodo del árbol apuntado por Puntero*/ NodoArbol devolverRaiz (); /*Devuelve una referencia a la raiz del arbol*/ NodoArbol devolverHijoIzquierdo (); /*Devuelve el hijo izquierdo del árbol*/ NodoArbol devolverHijoDerecho (); /*Devuelve el hijo derecho del árbol*/ void ponerClave (int Clave); /*pone la clave pasada como argumento en la raíz del ábol*/ void ponerReferencia (NodoArbol nuevoNodoArbol); /*Hace que el árbol apunte al mismo sitio que nuevoArbol*/ void ponerHijoIzquierdo (NodoArbol nodoArbolAsignado); /*Hace que el hijo izquierdo del arbol apunte ahora a arbolAsignado*/ void ponerPunteroDerecho (NodoArbol nodoArbolAsignado); /*Hace que el hijo derecho del arbol, apunte ahora a arbolAsignado*/ void asignarNulo (); /*Hace que el arbol tome el valor null*/ boolean esNulo (); /*Devuelve true si el arbol tiene valor null y false en caso contrario*/ boolean iguales (NodoArbol otroArbol); /*Devuelve true si el árbol y otroArbol apuntan al mismo sitio, false en caso contrario*/ }

  3. Uso del TAD ABB. Ejemplo static int sumaClaves (NodoArbol nodoArbol) { int resul = 0; if (nodoArbol != null) { resul = nodoArbol.obtenerClave ()+sumaClaves (nodoArbol.obtenerIzquierdo ()); resul = resul+ sumaClaves (nodoArbol.obtenerDerecho ()); } return resul; }

  4. TAD Árbol Binario de Búsqueda. Implementación (I) public class TadArbol implements Arbol { NodoArbol raiz; public TadArbol () { raiz = null; } /*Crea un nuevo nodo en el árbol, que queda apuntando a ese nodo*/ public void crearNodo () { raiz = new NodoArbol (); } /*Devuelve la clave contenida en la raíz del árbol */ public int obtenerClave () { int resul = 0; if (raiz != null) resul = raiz.clave; return resul; } /*Devuelve el hijo izquierdo del árbol*/ public NodoArbol devolverHijoIzquierdo () { NodoArbol resul = null; if (raiz!= null) resul = raiz.iz; return resul; }

  5. TAD Árbol Binario de Búsqueda. Implementación (II) /*Devuelve el hijo derecho del árbol*/ public NodoArbol devolverHijoDerecho () { NodoArbol resul = null; if (raiz != null) resul = raiz.de; return resul; } /*pone la clave pasada como argumento en la raíz del árbol*/ public void ponerClave (int clave) { if (raiz != null) raiz.clave = clave; } /*Hace que el árbol apunte al mismo sitio que nuevoArbol*/ public void ponerReferencia (NodoArbol nuevoArbol) { raiz = nuevoArbol; } /*Hace que el hijo izquierdo del arbol apunte ahora a arbolAsignado*/ public void ponerHijoIzquierdo (NodoArbol arbolAsignado) { if (raiz != null) raiz.iz = arbolAsignado; else System.out.println ("Error, el árbol está vacío"); }

  6. TAD Árbol Binario de Búsqueda. Implementación (y III) /*Hace que el hijo derecho del arbol, apunte ahora a arbolAsignado*/ public void ponerHijoDerecho (NodoArbol arbolAsignado) { if (raiz != null) raiz.de = arbolAsignado; else System.out.println ("Error, el árbol está vacío"); } /*Hace que el arbol tome el valor null*/ public void asignarNulo () { raiz = null; } /*Devuelve true si la raíz del arbol tiene valor null y false en caso contrario*/ public boolean esNulo () { return raiz == null; } /*Devuelve true si la raíz del árbol y la de otroArbol apuntan al mismo sitio, false en caso contrario*/ public boolean iguales (NodoArbol otroArbol) { return (raiz == otroArbol); } /*Devuelve una referencia a la raiz del arbol*/ public NodoArbol devolverRaiz() { return raiz; } }

More Related