Transcript 06-BST
Igor Santos Grueiro Muchos objetos tienen Cuando un objeto dispone de clave, EL ACCESO normalmente se realiza por ésta ¿Qué estructura de datos CONOCEMOS que tenga acceso por una clave? Para eso están los ÁRBOLES ÁRBOL BINARIO Un es una estructura de datos formada por NODOS Clave menor mayor 2Clave enlaces Un nodo de un BST tiene un HIJO IZQUIERDO y un HIJO DERECHO izquierdo derecho Un nodo tiene un ELEMENTO Y una CLAVE que permite el acceso CLAVE ELEMENTO LA CLAVE TIENE QUE SER COMPARABLE “Implements” se utiliza para decir que una clase tiene cierto comportamiento: UNA INTERFAZ UNA INTERFAZ es como una clase abstracta, pero Sin atributos Las clases que implementen una interfaz tienen que definir sus métodos “Comparable” tiene el método “Compareto” “Compareto” puede devolver si “this” es mayor al objeto que se compara si “this” es Menor al objeto que se compara si “this” es igual al objeto que se compara Vamos a implementar la Clase estudiante Un estudiante tiene: Dni de tipo “int” Nombre de tipo “string” nota de tipo “double” Un estudiante es “Comparable” por su número de dni Un estudiante tiene implementado el método “tostring” 5 minutos de trabajo personal EStudiante ¿de qué tipo serán la clave y el elemento del nodo de un BST? comparable Object Nodo nodo nodoBst BST tiene un nodo raíz Un 2 Raíz 1 5 3 6 Bst: Constructor ¿cúales son las Operaciones que se pueden hacer con un BST? Inserción de un elemento Elementos a insertar: 2,5,3,1,6 Elemento a insertar 21 5 3 6 2 1 5 3 6 Bst: insertar búsqueda De UNelemento Devolvemos a con elElemento objeto 3 Buscar clave 3 2 1 5 3 6 Bst: get Eliminar un Para eliminar un objeto con cierta clave Se busca EL elemento Se elimina El elemento Existen 3 posibilidades No tiene hijos Eliminamos el Elemento a objeto con 3 eliminar clave 3 2 1 5 3 6 tiene un hijo Elemento a eliminar 5 2 1 Eliminamos el objeto con clave 5 y el hijo ocupa su lugar 5 6 tiene Los dos hijos Se remplaza o O por el Eliminamos el Elemento a por el mayor menor de su 2 objeto con eliminar de su derecha clave 2 izquierda 2 1 5 3 6 Bst: Borrar Recorrer Un BST Recorrido Pre-orden 2 1 5 3 6 Recorrido Pre-ORDER Recorrido en Post-orden 2 1 5 3 6 Recorrido POST-ORDER Recorrido IN-orden 2 1 5 3 6 Recorrido IN-ORDER Y queremos tener acceso indexado Podemos usar árboles Y, Así, ser muy Rápid0s