ACI600
Escuela de Ingeniera
Informacin2
Informacin3
Nulo
Informacin2.5
k-1
k+1
n-2 n-1
arreglo[n] =
TDA
Entra alguien a la cola
Sale alguien de la cola
TDA
Estructura
Interfaz
TDA Diccionario
Dominio
a
llave
Diccionario d
d(a)
valor
TDA Diccionario
TDA Diccionario
Busca elementos
Inserta elementos
Elimina elementos
TDA Diccionario
Juan Perez
Jos Gonzlez
TDA Diccionario
Juan Perez
Juan Perez
12345678
Definicin
Definicin
Aplicaciones
Comparacin implementaciones
Representacin
Representacin
lista
sgte
valor1
sgte
valor2
sgte
valor3
Nulo
primero
Operaciones
Operaciones
Operaciones
r
sgte . sgte
valor1
sgte
valor i-1
valor i
valor i+1
Nulo
primero
Operaciones
Operaciones
ndice i-1
r
r
sgte . sgte
Informacin 1
sgte
Informacin i-1
Informacin i
Nulo
primero
sgte
Informacin i
sgte
Operaciones
Eliminacin de recursividad
Eliminacin de recursividad
Eliminacin de recursividad
Definicin
Definicin
Aplicaciones
Botn Deshacer de
los editores de texto.
Botn Atrs
de navegadores.
Redo3
Undo2
Redo2
Undo1
Redo1
Comparacin implementaciones
a0
a1
n-2 n-1
a n-2 a n-1
apilar
a*
arreglo = arreglo2[2*n] =
a0
a1
n-2 n-1
a n-2 a n-1 a*
2*n- 2*n2
1
Representacin
}
class PilaLista
{
private NodoLista lista;
public PilaLista() {
lista=null;
}
Operaciones
lista
sgte
valor nuevo
sgte
valor1
sgte
valor2
Nulo
lista
sgte
sgte
valor1
valor2
sgte
valor3
Nulo
Operaciones
Operaciones
Definicin
Definicin
8 7
5 4
2 1
sacar
Aplicaciones
Comparacin implementaciones
0
cola=
k-1
34
primero
ltimo
k+1
n-2 n-1
Implementacin arreglo
cola=
numElem1
k+1
k-1
15
10
34
ltimo
primero
n-2 n-1
22
Representacin
Operaciones
Operaciones
prioridades
sacar
Un rbol binario:
Insercin: O(log(n))
Extraccin de mximo: O(log(n))
4
8
3
5
rboles Generales
subrbol
subrbol
N
rboles Generales
Raz
Padre de 8, 9 y 10
Hijo de 2
5
11
3
6
12
4
8
10
13
14
15
Hojas
Hermanos
rboles Generales
Ancestro de 10
3
6
4
8
10
11
12
15
13
Descendiente de 1 y 4
14
rboles Generales
Profundidad
del rbol = 4
1
3
4
8
10
11
Altura de 4 = 2
12
4
15
13
14
Representacin
2
5
11
3
6
12
15
Hermano
4
8
10
13
14
Representacin
rboles Binarios
Informacin
Izq
Der
subrbol
subrbol
izquierdo
derecho
Nodo externo
1
3
4
3
Representacin
Ejemplo
class NodoArbolBinario
{
Object elemento;
NodoArbolBinario izq;
NodoArbolBinario der;
}
1245367
Ejemplo
static String preorden(NodoArbolBinario r){
if(r==null) return "";
return r.elemento + preorden(r.izq) + preorden(r.der);
}
4251637
Ejemplo
static String inorden(NodoArbolBinario r){
if(r==null) return "";
return inorden(r.izq) + r.elemento + inorden(r.der);
}
4526731
Ejemplo
static String postorden(NodoArbolBinario r){
if(r==null) return "";
return postorden(r.izq) + postorden(r.der) + r.elemento;
}
1+2
4-3
Preorden y Pilas
*
+
1
3
*
+
1
*+1243
2
4
3
Como sacarlos
para calcular?
Notacin polaca!
Definicin
<X
der
>X
Definicin
<X
Llave
Valor
Izq
Der
>X
Aplicaciones
Existe una variacin de los ABB llamado rbol AVL que, mediante el
balanceo del rbol, mejora el peor caso de las operaciones de un ABB
de O(n) a O(log n).
Representacin
Bsqueda
5
12>5
16
12<16
10
20
12>10
12
encontrado
Bsqueda
Ejemplo
public Object buscar(Comparable x){
Nodo r=referencia(x,raiz);
return r==null ? null : r.significado;
}
Bsqueda
Bsqueda
5
12>5
16
12<16
10
12>10
12
encontrado
Bsqueda y cambio
Insercin
5
6>5
16
6<16
10
20
6<10
7
6<7
12
Insercin
Eliminacin
5
7>5
16
7<16
10
20
7<10
12
Eliminacin
Eliminar 10
10>5
16
16
10<16
10
20
12
12
20
Eliminacin
16>5
3
1
16
4
10
3
20
17
1
22
17
4
10
20
22
Eliminacin
Eliminacin
Ejemplo
protected Nodo borrar(Nodo r){
if(r.izq==null) return r.der;
if(r.der==null) return r.izq;
//reemplazar por mayor de arbol izq
if(r.izq.der==null){
r.palabra = r.izq.palabra;
r.significado = r.izq.significado;
r.izq = r.izq.izq; //enlazar hijos menores
}
else{
Nodo rAnt=r.izq;
while(rAnt.der.der!=null)
rAnt=rAnt.der;
r.palabra = rAnt.der.palabra;
r.significado = rAnt.der.significado;
rAnt.der = rAnt.der.izq;//enlazar menores
}
return r;
}