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