Anda di halaman 1dari 7

DLSI (Univ.

Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


DEFINICIONES Un rbol 2-3-4 es un rbol que est vaco o satisface las siguientes propiedades:
Los nodos pueden tener 2, 3 4 hijos (2-nodo, 3-nodo 4-nodo) Cumple las propiedades de rbol multicamino de bsqueda Todas las hojas estn en el mismo nivel

Representacin
TNodo234

class TArb234 {
ItemDe HijoDe

public: ..... private: TNodo234 * farb; };

ItemIz HijoIz

ItemMe HijoMeIz HijoMeDe

TNodo234 *

DLSI (Univ. Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


OPERACIONES BSICAS. PROPIEDADES Operaciones bsicas:
Bsqueda (similar a los rboles multicamino de bsqueda) Insercin (se realiza en las hojas. Se pueden producir reestructuraciones del rbol) Borrado (se realiza en las hojas. Se pueden producir reestructuraciones del rbol)

Propiedades:
En un rbol 2-3-4 de altura h tenemos: 2h - 1 elementos si todos los nodos son del tipo 2-nodo 4h - 1 elementos si todos los nodos son del tipo 4-nodo por lo que la altura de un rbol 2-3-4 con n elementos se encuentra entre los lmites: log4 (n+1) y log2 (n+1) Las reestructuraciones se realizan desde la raz hacia las hojas

DLSI (Univ. Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


OPERACIONES BSICAS. INSERCIN (I) Existen 3 situaciones en las que se puede encontrar un 4-nodo:
x a b y c z d p

q p y b

q p z c d e y b

x a

x a

z c d

w e

w e f

x a b

z c d

x a b

z c d

x a b

z c d

Es la raz de un rbol 2-3-4: (DIVIDERAIZ (p) )

Su padre (q) es un 2-nodo: (DIVIDEHIJODE2 (p, q) )

Su padre (q) es un 3-nodo: (DIVIDEHIJODE3 (p, q) )


3

DLSI (Univ. Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


OPERACIONES BSICAS. INSERCIN (II)
ALGORITMO insertar (A: TArb234, y: item) VAR p, q: TNodo234*; noencontrado: Boolean; B: TArb234; FVAR p = A.farb; q = p; si EsVaco( A ) entonces A = ENRAIZAR(A, y, B) sino si p es 4-nodo entonces DIVIDERAIZ( A ) fsi noencontrado = VERDADERO; mientras noencontrado hacer si p es 4-nodo entonces si q es 2-nodo entonces DIVIDEHIJODE2( p, q ); sino DIVIDEHIJODE3( p, q ); fsi p = q; fsi caso de COMPARAR( y, p ): 0:// Clave de y coincide con clave en p ERROR, ETIQUETA EXISTENTE; 1:// p apunta a un nodo hoja PONER( y, p ); noencontrado = FALSO; 2:// clave( y ) < ItemIz.clave( p ) q = p; p = p HiIz; 3:// ItemIz.clave(p)<clave(y)<ItemMe.clave(p) q = p; p = p HiMeIz; 4://ItemMe.clave(p)<clave(y)<ItemDe.clave(p) q = p; p = p HiMeDe; 5:// clave(y) > ItemDe.clave(p) q = p; p = p HiDe; fcaso fmientras fsi FALGORITMO

DLSI (Univ. Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


OPERACIONES BSICAS. INSERCIN. EJEMPLO (III) Ejemplo. Insertar en un rbol 2-3-4 inicialmente vaco los siguientes items: 20, 40, 80, 65, 90, 50, 30, 35, 32, 70, 60
20, 40, 80
20 40 80

65
DIVIDERAIZ

40

90

40

20

65

80

20

65

80

90

50
DIVIDEHIJODE2

40

80

30, 35

40

80

20

50

65

90

20

30

35

50

65

90

32
DIVIDEHIJODE3

30

40

80

70
DIVIDERAIZ

20

32

35

50

65

90

DLSI (Univ. Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


OPERACIONES BSICAS. INSERCIN. EJEMPLO (IV)

40

70
DIVIDERAIZ

30

80

20

32

35

50

65

70

90

40

60
DIVIDEHIJODE2

30 32 20 35 50 60

65

80 90 70

DLSI (Univ. Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


EJERCICIOS insercin 1) Dado el siguiente rbol 2-3-4, insertar los elementos 21 y 35
7 14

10

12

22 26 30

8 11

13

20 24

28 29 32 33 34

DLSI (Univ. Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


EJERCICIOS insercin: SOLUCIN 1) La solucin es la siguiente:
14

26

10

12

22

30

33

11

13

20

21

24

28

29

32

34

35

DLSI (Univ. Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


OPERACIONES BSICAS. BORRADO (I) Se reduce al borrado de un elemento en una hoja En el movimiento de bsqueda, cuando pasemos a un nodo en el siguiente nivel, ste nodo debe ser 3-nodo 4-nodo; si no es as (es 2-nodo) hay que reestructurar
p = nodo donde estamos q = siguiente nodo en la bsqueda r = uno de los nodos adyacentes a q (si hay dos adyacentes, escogemos r segn criterio hermano de la izquierda o hermano de la derecha)

Casos:
1. 2.

p es una hoja: p slo puede ser 2-nodo si es la raz q es 3-nodo 4-nodo: la bsqueda contina en q sin reestructurar

DLSI (Univ. Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


OPERACIONES BSICAS. BORRADO (II)
3. q es 2-nodo y r es 2-nodo (COMBINACIN):
1.
q

p es 2-nodo: es la raz
y p r z
x y z

2.

p es 3-nodo 4-nodo
w y r x z v w p q,r y p

u q t v

y r x

u q,r
z

10

DLSI (Univ. Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


OPERACIONES BSICAS. BORRADO (III)
4.

q es 2-nodo y r es 3-nodo 4-nodo (ROTACIN):


w q r x y p

v q r w

s q

y r v w

p q

y r

11

DLSI (Univ. Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


OPERACIONES BSICAS. BORRADO. EJEMPLO (IV) Ejemplo. Borrar en el siguiente rbol 2-3-4 los siguientes items: 40, 65, 20, 32, 90, 80. (Criterios: (1) si el nodo tiene dos hijos hay que sustituir por el mayor de la
izquierda, (2) Si hay dos nodos adyacentes a q, entonces r ser el hermano de la izquierda)
40 q p r

40
COMBINACIN

30

80

20

32

35

65

90

30

40

80 q

30

35

80 r

p q

RESULTADO:

65

COMBINACIN
65 90

20

32

35

65

90

20

32

30

80 q

30 q 20

80 r 32 35

20
p RESULTADO:

ROTACIN
90

20

32

35

65

90

12

DLSI (Univ. Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


OPERACIONES BSICAS. BORRADO. EJEMPLO (V)

32 q 20 30

80 r 35

32 q
90

80 r 35

RESULTADO:

32
COMBINACIN

30

90

80 q 30 32 35 90 r

80 q RESULTADO

90
ROTACIN
90

30

35

35 q 30 80 90

35 q RESULTADO

80
COMBINACIN

30

80

30

35

80

30

35

RESULTADO

13

DLSI (Univ. Alicante)

Tema 3. Tipo rbol

3.4. rboles 2-3-4


EJERCICIOS borrado 1) Borrar en el siguiente rbol 2-3-4 el item: 25. (Criterios: (1) si el nodo tiene dos hijos
hay que sustituir por el mayor de la izquierda, (2) Si hay dos nodos adyacentes a q, entonces r ser el hermano de la izquierda)
25 r

p q 18

35 45 55

14

22

28 32

37

53

57

10

16

19

23

26

30

34

36

38

52

54

56

58

14