Foros del Web » Programación para mayores de 30 ;) » C/C++ »

consulta Arbol B

Estas en el tema de consulta Arbol B en el foro de C/C++ en Foros del Web. esto representa un arbol B 15| | | | 2|4|5|9 16|25|40| | elimino el 15. y me queda asi: (osea subi el 16-osea el de ...
  #1 (permalink)  
Antiguo 28/06/2007, 21:43
 
Fecha de Ingreso: marzo-2007
Mensajes: 302
Antigüedad: 17 años, 8 meses
Puntos: 2
Pregunta consulta Arbol B

esto representa un arbol B


15| | | |
2|4|5|9 16|25|40| |

elimino el 15. y me queda asi: (osea subi el 16-osea el de la derecha)
16| | | |
2|4|5|9 25|40| | |

ahora elimino el 16. para mantener el mismo orden q antes tendria q sacar el 25 (derecha) pero no puedo dejar una sola clave en ese nodo..asi q queria saber como queda el arbol despues de sacar el 16. (porque tengo entendido que tengo q mantener el mismo orden si sube en uno el de la derecha despues me mantengo con eso)
  #2 (permalink)  
Antiguo 01/07/2007, 06:59
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 19 años, 4 meses
Puntos: 24
Re: consulta Arbol B

Cuando eliminas el 16, el árbol queda así:
25| | | |
2|4|5|9 40| | |

En la segunda hoja se produce una insuficiencia.

Existen 2 maneras de solucionar este problema: mediante concatenación de nodos, o mediante redistribución de nodos.

redistribución:
te fijas si algún nodo hermano tiene muchas hojas (de manera que se le pueda quitar alguna), juntás las llaves de los 2 nodos, y la llave que los separa en el nodo padre.
2 4 5 9 25 40

Y por último los volvés a organizar en el árbol:
9| | |
2|4|5| | 25|40| |

Si no tenés espacio, lo que te queda es juntar 2 nodos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:15.