Está en la página 1de 49

ARBOL

y
CADENA POLACAS

Semestre 2020-I
Mg. Daniel Quinto Pazce

claudiopazce@gmail.com
Matemáticas Discretas: Daniel Quinto Pazce 1
Árbol del montículo
 A la secuencia de nodos se le llama:
 Hi , Hi+1, Hi+2…, HDdiv2 , HDdiv2+1… , HD
y cumpla propiedad:

FISI- Daniel Quinto Pazce- Logica M.


 árbol de montículo
Hi <= H2i
Hi <= H2i+1
i, i i...D div 2

En esta definición de Montículos no se exige relación


Alguna entre los elementos HDdiv2+ HDdiv2+1 … + HD

Matemáticas Discretas: Daniel Quinto Pazce 2


Árbol del montículo
M:
E M I L I O S M I T
4 5 6 7 8 9 10 11 12 13

i = 4, 5, 6 E
No tiene relación L
Para i = 4: H4 = E <= I = H8 4
I O
H4 = E <= O = H9
8 9
M
Para i = 5: H5 = M <= S = H10 5 L

H5 = M <= M = H11 S M 7

10 I 11
Para i = 6: H6 = I <= I = H12
6
H6 = I <= T = H13 I T

12 13
Matemáticas Discretas: Daniel Quinto Pazce
3
Arbol : Algoritmo de Filtración
E M I L I O S M I T
1 2 3 4 5 6 7 8 9 10

Para i = 1 …5 i = 1,2, 3, 4, 5
Para i = 1: H1 = E ≤ M = H2 v
H1 = E ≤ I = H3 E
Para i = 2: H2 = M ≤ L = H4 1
H2 = M ≤ I = H5 x M I
Para i = 3: H3 = I ≤ O = H6 2 3
H3 = I ≤ S = H7 v
L I O S
Para i = 4: H4 = L ≤ M = H8 v
H4 = L ≤ I = H9 x 4 5 6 7
Para i = 5: H5 = I ≤ T = H10 M I T
H5 = I ≤ v
8 9 10

LA DIRECCION DEL ARBOL, SE MANTIENE DESPUES DEL FILTRADO. ARBOL DE MONTICULO

Matemáticas Discretas: Daniel Quinto Pazce


4
Arbol : Algoritmo de Filtración
ALGORITMO DE FILTRACION:
R1: Inicializar el nodo padre raíz.: R2 Almacenar el nodo padre en un buffer
R3: Seleccionar el sub árbol del menor nodo hijo. R4: Mientras nodo hijo seleccionado < buffer
Reemplazar nodo padre con el nodo hijo seleccionado. Actualizar nodo hijo seleccionado
R5: Repetir el procedimiento desde el paso R3.

M: E
M E

M I I I
L
L I O S I M O S

M I T M L T

Matemáticas Discretas: Daniel Quinto Pazce


5
Árbol de MONTÍCULO (M)
E ----------------------------------- 0
M:
1
I I --------------- 1

2 3
I M O S -------- 2
4 5 6 7

M L T --------------------------------------------- 3
8 9 10

Matemáticas Discretas: Daniel Quinto Pazce


6
Representación en Memoria
De un árbol binario cualesquiera

IZQ INFO DER


Info Izq Der
Inicio 1 H 9 6
F 2 E 0 0
3 A 0 0
B H 4 F 7 1
5 C 0 0
NDISP 6 I 0 0
A D G I 7 B 3 11
12 8 10 0
9 G 0 0
C E 10 0 0
11 D 5 2
12 8 0

Matemáticas Discretas: Daniel Quinto Pazce 7


Representación en Memoria de un Árbol

Matemáticas Discretas: Daniel Quinto Pazce 8


Representación Enlazada
De un arbol Binario

B H

A D G I

C E

Matemáticas Discretas: Daniel Quinto Pazce


9
Representación Enlazada

Matemáticas Discretas: Daniel Quinto Pazce 10


Operación en un Árbol de BB
PRIMER CASO
 1) Elimine una Hoja del árbol binario

FISI- Daniel Quinto Pazce- Logica M.


F F

B H B H

A D A D

C E C

Matemáticas Discretas: Daniel Quinto Pazce


11
Eliminación de un Nodo
SEGUNDO CASO

FISI- Daniel Quinto Pazce- Logica M.


2) Eliminación con 1 solo descendiente
El puntero padre salta al nodo suprimido y apunta al hijo
del nodo que queremos suprimir
F
F

B H
A I

A I

Matemáticas Discretas: Daniel Quinto Pazce


12
Eliminación de un Nodo con 2 descendientes
 Eliminación de 1 nodo con 2 descendientes. Criterios
 SubIzq { el nodo es aquel que es el más próximo y que
precede inmediatamente al que se esta suprimiendo.
 SubDer { el valor es aquel que sigue inmediatamente al
que esta suprimiendo
F F

B H C H

A D G I A D G I

C E E

Matemáticas Discretas: Daniel Quinto Pazce


13
Eliminación de un nodo con 2 descendientes
Sub Izq
 El valor es aquel que es el mas próximo y
que precede inmediatamente al que le esta

FISI- Daniel Quinto Pazce- Logica M.


suprimiendo.
Sub Derecho
 El valor es aquel que sigue inmediatamente
al que se esta suprimiendo.

Matemáticas Discretas: Daniel Quinto Pazce 14


Recorridos en un Árbol

FISI- Daniel Quinto Pazce- Logica M.


 A.- In - orden

 B.- Pre - orden

 C.- Pos - orden

Matemáticas Discretas: Daniel Quinto Pazce 15


FISI- Daniel Quinto Pazce- Logica M.
Matemáticas Discretas: Daniel Quinto Pazce 16
Matematicas Discretas: Daniel Quinto
Pazce 17
Public void inorden (NodoArbol nodo)
{ if (nodo == null )
return;
Inorden(nodo.hijo1);

System.out.print (”Nodo Value → “ +


nodo.value );

Inorden(nodo.hijo2);

Matematicas Discretas: Daniel Quinto


Pazce 18
B. En profundidad

FISI- Daniel Quinto Pazce- Logica M.


Matemáticas Discretas: Daniel Quinto Pazce 19
Matematicas Discretas: Daniel Quinto
Pazce 20
Public void preorden (NodoArbol nodo)
{ if (nodo == null )
return;
System.out.print (”Nodo Value → “ +
nodo.value );

Preorden(nodo.hijo1);
Preorden(nodo.hijo2);

Matematicas Discretas: Daniel Quinto


Pazce 21
FISI- Daniel Quinto Pazce- Logica M.
Matemáticas Discretas: Daniel Quinto Pazce 22
Matematicas Discretas: Daniel Quinto
Pazce 23
Public void posorden (NodoArbol nodo)
{ if (nodo == null )
return;
P0sorden(nodo.hijo1);
Posorden(nodo.hijo2);

System.out.print (”Nodo Value → “ +


nodo.value );

Matematicas Discretas: Daniel Quinto


Pazce 24
Ejemplo:

FISI- Daniel Quinto Pazce- Logica M.


Matemáticas Discretas: Daniel Quinto Pazce 25
Recorridos de un árbol
 Inorden: A B C D EF G H I  F
 Preorden: FBADCEHGI 

FISI- Daniel Quinto Pazce- Logica M.


 Postorden: ACEDBGIHF  B H
F
A D G I
B H

C E
A D G I F

B H
C E

A D G I

C E
26
Recorridos en Amplitud

FISI- Daniel Quinto Pazce- Logica M.


Matemáticas Discretas: Daniel Quinto Pazce 27
Recorridos en Amplitud

FISI- Daniel Quinto Pazce- Logica M.


Matemáticas Discretas: Daniel Quinto Pazce 28
29
FISI- Daniel Quinto Pazce- Logica M.
Matematicas Discretas: Daniel Quinto Pazce 30
CADENA POLACA

 Polaco Lukasiewicz implemento el árbol de una

FISI- Daniel Quinto Pazce- Logica M.


expresión aritmética para obtener la cadena:

 in-fija, pre-fija y pos-fija.

 Hacemos evaluaciones utilizando el concepto


de pila.

Matematicas Discretas: Daniel Quinto Pazce 31


CADENA POLACA
 EXPRESION ARITMÉTICA:

FISI- Daniel Quinto Pazce- Logica M.


tenemos los:
operandos: letras minúsculas

operadores : ( )

/ * div mod
+ -

Matematicas Discretas: Daniel Quinto Pazce 32


CADENA POLACA
Generación de un árbol Expresión aritmética

1. a b /
c d Operadores
Nodos internos

+ -

info a b c d

a b c d
1 2 3 4
Matemáticas Discretas: Daniel Quinto Pazce 33
Expresión Aritmética
2 ( d ( g f ))
(ab c )
b)

FISI- Daniel Quinto Pazce- Logica M.


- -

*
d +

a b c 2 f
gg

34
Expresión Aritmética
2 3
b) ab c

FISI- Daniel Quinto Pazce- Logica M.


-
3

a b c 2

35
CADENA POLACA
 Ejemplo :
+

/ /

+ *

* * a f a c d /

a b c d
1 2

(a* b+c*d)/a*f + (a c)/ d 1/2

Matemáticas Discretas: Daniel Quinto Pazce 36


CADENA POLACA

b b 2 4ac
x
2a
b b 2 4ac
x
2a
Queda como ejercicio 1* b
b
s *b

Matemáticas Discretas: Daniel Quinto Pazce 37


Recorridos de un Árbol
-
IN-FIJA
Ejemplo: * /

a(b+c)–d/e
a + d e

Recorrido In-fijo:
b c
a*b+c-d/e

Matemáticas Discretas: Daniel Quinto Pazce 38


Recorridos de un Árbol
-
PRE-FIJA
Ejemplo: * /

a(b+c)–d/e
a + d e

Recorrido pre-fijo:
b c
-*a+bc/de

Matemáticas Discretas: Daniel Quinto Pazce 39


Recorridos de un Árbol
-
POS-FIJA
Ejemplo: * /

a(b+c)–d/e
a + d e

Recorrido pos-fijo:
b c
abc+*de/-

Matemáticas Discretas: Daniel Quinto Pazce 40


RECORRIDOS
+ Ejemplo:

FISI- Daniel Quinto Pazce- Logica M.


 CADENA IN-FIJA:
b c /a +d e
b / d e  CADENA PRE-FIJA:
+ b/ca de
c a
 CADENA POS-FIJA:
bca/ de +

Matemáticas Discretas: Daniel Quinto Pazce 41


PILAS (STACK)
 Es una estructura dinámica en donde las inserciones y eliminaciones
se hacen a través del puntero cima, utilizando el principio:
“Ultimo en llegar primero en salir”
LIFO Push ( ) Pop ( )
VIENE *
“Last In First Out”
Puntero cima: devuelve el elemento
cima
que esta en la cima de la pila EN LA PILA

ESTA +

APILAR Depilar

Matemáticas Discretas: Daniel Quinto Pazce 42


Pilas: EVALUACION
METODOS DE EVALUACION
A) METODO MANUAL

FISI- Daniel Quinto Pazce- Logica M.


B) METODO POR PILAS
El método de pila para la evaluación de
expresiones aritméticas fue propuesto en
1955 por Fiedrich L.Bauer,
quién recibió en 1988 el premio "IEEE
Computer Society Pioneer Award" por su
trabajo en el desarrollo de dicha estructura
de datos.

Matemáticas Discretas: Daniel Quinto Pazce 43


Pilas
Cadena (vacía)

Empila de menor a mayor:

FISI- Daniel Quinto Pazce- Logica M.


Depilar
Empilar
-

cima Pila vacía

*
/
+
Matemáticas Discretas: Daniel Quinto Pazce 44
Evaluación Manual
Cadena
5(6+2)-8/4 -

- * 5 + 6 2 / 8 4 * /

8 2
5 + 8 4

40
38 2
6

Matemáticas Discretas: Daniel Quinto Pazce 45


EVALUACION USANDO EL MÉTODO DE PILA

Símbolo Pila
5 6 2 + * 8 4 / - 5 5

FISI- Daniel Quinto Pazce- Logica M.


6 5 6
Cadena Pos-fija
2 5 6 2
+ 5 8
* 40
8 40 8
4 40 8 4
/ 40 2
- 38

Matemáticas Discretas: Daniel Quinto Pazce 46


TRANSFORMACION DE INFIJA A POS-FIJA

Cadena original infija


a*(b+c)–d/e

FISI- Daniel Quinto Pazce- Logica M.


Se debe tener la expresión aritmética
expresada en cadena original de infija; los
operadores se manejan de acuerdo a sus
prioridades, si viene un * y en la pila se
encuentra un + se empila, en caso
contrario sale de pila para ingresar. A la
pila ingresa de menor a mayor.

Matemáticas Discretas: Daniel Quinto Pazce 47


TRANSFORMACION DE INFIJA A POS-FIJA
Símbolos Pilas Cadena postfija

( (
a ( a
* (* a
( (*( a

FISI- Daniel Quinto Pazce- Logica M.


b (*( a b
+ (*(+ a b
C (*(+ a b c
) (* a b c+
- (- a b c+*
d (- a b c+*d
/ (-/ a b c+*d
e (-/ a b c+*d e
) E a b c+*d e / -

Matemáticas Discretas: Daniel Quinto Pazce 48


SIGA ADELANTE

SEGUNDA PARTE

FIN

Matemáticas Discretas: Daniel Quinto Pazce 49

También podría gustarte