Igor Santos Grueiro
Muchos objetos tienen CLAVE
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
Un ÁRBOL BINARIO es una estructura de datos formada por NODOS
2 enlaces Clave menorClave mayor
Un nodo de un BST tiene un HIJO IZQUIERDO y un HIJO DERECHO
izquierdoderecho
Un nodo tiene un ELEMENTO Y una CLAVE que permite el acceso
CLAVE ELEMENTO
LA CLAVE TIENE QUE SER COMPARABLE
recordemos
“Implements” se utiliza para decir que una clase tiene cierto comportamiento: UNA INTERFAZ 1
UNA INTERFAZ es como una clase abstracta, pero Sin atributos 2
Las clases que implementen una interfaz tienen que definir sus métodos 3
“Comparable” tiene el método “Compareto”
“Compareto” puede devolver
> 0 si “this” es mayor al objeto que se compara
< 0 si “this” es Menor al objeto que se compara
0 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?
Nodo nodo comparable Object
nodoBst
Un BST tiene un nodo raíz Raíz
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
Bst: insertar
búsqueda De elemento UN
Elemento a Buscar 3 Devolvemos el objeto con clave 3
Bst: get
Eliminar un
Para eliminar un objeto con cierta clave
Se busca elemento 1 EL
Se elimina El elemento 2
Existen 3 posibilidades
No tiene hijos
Elemento a eliminar 3 Eliminamos el objeto con clave 3
tiene un hijo
Elemento a eliminar 5 Eliminamos el objeto con clave 5 y el hijo ocupa su lugar
tiene Los dos hijos
Elemento a eliminar 2 Eliminamos el objeto con clave 2 Se remplaza o por el mayor de su izquierda O por el menor de su derecha 3
Bst: Borrar
Recorrer Un BST
Recorrido Pre-orden
Recorrido Pre-ORDER
Recorrido en Post-orden
Recorrido POST-ORDER
Recorrido IN-orden
Recorrido IN-ORDER
Si los elementos tienen clave
Y queremos tener acceso indexado
Podemos usar árboles