Escolar Documentos
Profissional Documentos
Cultura Documentos
Carlos Delgado Kloos Dep. Ingeniera Telemtica Univ. Carlos III de Madrid
cdk@it.uc3m.es Java: Pilas / 1
Ejemplo
cdk@it.uc3m.es
Java: Pilas /
Ejemplo
cdk@it.uc3m.es
Java: Pilas /
Ejemplo
cdk@it.uc3m.es
Java: Pilas /
Caractersticas
Estructura lineal Acceso de insercin y eliminacin por un solo extremo
cdk@it.uc3m.es
Java: Pilas /
Mtodos principales
Meter por un extremo: push(x) Sacar por el mismo extremo: pop()
cdk@it.uc3m.es
Java: Pilas /
Mal:
)( (() ())
Reglas:
Bsico: Secuenciacin: ()() Anidamiento: (())
cdk@it.uc3m.es Java: Pilas / 7
(()(()())())
cdk@it.uc3m.es
Java: Pilas /
(()(()())()) (
cdk@it.uc3m.es
Java: Pilas /
10
(()(()())()) ( (
cdk@it.uc3m.es
Java: Pilas /
11
(()(()())()) (
cdk@it.uc3m.es
Java: Pilas /
12
(()(()())()) ( (
cdk@it.uc3m.es
Java: Pilas /
13
(()(()())()) ( ( (
cdk@it.uc3m.es
Java: Pilas /
14
(()(()())()) ( (
cdk@it.uc3m.es
Java: Pilas /
15
(()(()())()) ( ( (
cdk@it.uc3m.es
Java: Pilas /
16
(()(()())()) ( (
cdk@it.uc3m.es
Java: Pilas /
17
(()(()())()) (
cdk@it.uc3m.es
Java: Pilas /
18
(()(()())()) ( (
cdk@it.uc3m.es
Java: Pilas /
19
(()(()())()) (
cdk@it.uc3m.es
Java: Pilas /
20
(()(()())())
cdk@it.uc3m.es
Java: Pilas /
21
([]{()<>}())
cdk@it.uc3m.es
Java: Pilas /
22
Ejemplo: HTML
<b><i>hola</b></i>
([)] Correcto con HTML 1.0-4.0 Incorrecto con XHTML
<b><i>hola</i></b>
([]) Correcto con HTML 1.0-4.0 Correcto con XHTML
cdk@it.uc3m.es Java: Pilas / 23
ArrayStack
LinkedStack
cdk@it.uc3m.es
Java: Pilas /
25
2 3
1 2
4
3
5
4 5 N-1
cdk@it.uc3m.es
Java: Pilas /
26
cdk@it.uc3m.es
Java: Pilas /
27
cdk@it.uc3m.es
Java: Pilas /
28
cdk@it.uc3m.es
Java: Pilas /
29
Madrid
Miami
Mnich
cdk@it.uc3m.es
Java: Pilas /
30
Insercin (push)
top
Madrid
Miami
Mnich
Mosc
cdk@it.uc3m.es
Java: Pilas /
33
cdk@it.uc3m.es
Java: Pilas /
34
cdk@it.uc3m.es
Java: Pilas /
35
Borrado (pop)
top
Mosc
Madrid
Miami
Mnich
cdk@it.uc3m.es
Java: Pilas /
36
Pilas y recursin
public static long fac (int n) {if (n<=1) return 1; else return n*fac(n-1); }
cdk@it.uc3m.es
Java: Pilas /
38
Ejecucin
fac(4) 4*fac(3) 4*(3*fac(2)) 4*(3*(2*fac(1))) 4*(3*(2*1))) 4*(3*2) 4*6 24
cdk@it.uc3m.es
2* 3* 4*
Java: Pilas /
39