Académique Documents
Professionnel Documents
Culture Documents
Resumen: En este artculo se tendr en cuenta, el El concepto de balanceo se da a conocer como una
concepto de balanceo al que se le dar una posible solucin al crecimiento y altura de estos, las tcnicas de
solucin a travs diferentes tipos de algoritmos balanceo son importantes ya que se cuentan con
planteados, tanto en el rbol AA Tree como en el Heap, diversos algoritmos que requieren de esta tcnica para
generan importancia al momento de resolver problemas, la mejora de su implementacin y uso de datos.
como el ordenamiento de sus elementos, para mejorar En este trabajo se revisar el concepto de balanceo
su diseo y hacer funcional su implementacin en diversos tipos de algoritmos en los que se ejecutara
debidamente. eficientemente operaciones que permiten el
Palabras claves: Heap, ordenar, rbol binario, mejoramiento del algoritmo.
balancear, AA Tree. En el caso de balanceo tenemos como ejemplo un
Abstract: This article will take into account the montculo que es un rbol binario balanceado en el cual
concept of balancing will be that a possible solution est diseado para resolver el problema elementos
through different types of algorithms posed, both the dentro de un vector.
AA Tree tree and Heap, generate importance when AA TREE
solve problems, such as the ordering of its elements to Es un tipo de rbol binario de bsqueda y auto-
improve your design and make functional balanceable, es decir, intenta mantener su altura o su
implementation properly. nmero de nodos bajo la raz, tan pequea como sea
key words: Heap, order, binary tree, swing, AA posible en todo momento, automticamente, utilizado
Tree. para almacenar y recuperar informacin ordenada de
INTRODUCCIN manera eficiente. Estos rboles son una variacin del
Es importante observar que la estructura de rboles rbol rojo-negro y es una mejora del rbol binario de
es fundamental en la computacin. Su importancia bsqueda.
radica en la capacidad que tiene para el manejo de Se debe cumplir el estricto requisito de que solo los
informacin de manera dinmica, es decir dando la enlaces derechos pueden ser rojos y a diferencia de los
posibilidad de la fcil realizacin de cambios en la rboles rojo-negro, estos se implementan con la idea de
informacin a lo largo del tiempo. nivel y no de color.
Comparacin Tcnicas y Algoritmos de Balanceo
[3]
Eliminar
A la hora de eliminar un nodo pueden presentarse 3
casos:
[4]
Eliminar una hoja: para eliminar una hoja (nodo sin
hijos), basta con borrarla.
Comparacin Tcnicas y Algoritmos de Balanceo
/**
*Su respectivo constructor.
*/
public AATree( ) {
root = nullNode;
}
[5]
/**
Eliminacin de la Raz
*inserta en el arbol.
El procedimiento para eliminar la raz del montculo
*/
(el elemento mximo en un max-heap o el elemento
public void insert (Comparable x ) {
mnimo en un min-heap) se realiza con el siguiente
root = insert( x, root );
algoritmo.
}
1 Reemplazar la raz del montculo con el ltimo
elemento en el ltimo nivel
/**
2. Comparar la nueva raz con sus hijos. Si est en el
*Elimina elementos del arbol
orden correcto, detenerse.
*/
3. Si no, intercambiar el elemento con uno de sus
public void remove (Comparable x ) {
hijos y regresa al paso anterior (el intercambio se realiza
deletedNode = nullNode;
con su hijo ms pequeo en un min heap, y con su hijo
root = remove( x, root );
ms grande en un max-heap).
}
/**
*Encuentra el elemento mas pequeo del arbol
*/
public Comparable findMin( ) {
if( isEmpty( ) )
return null;
}
/**
/** *Se mira que el rbol este lgicamente vaco
*Encuentra el elemento mas grande en el rbol */
*/ public void makeEmpty( ) {
public Comparable findMax( ) { root = nullNode;
if( isEmpty( ) ) }
return null;
/**
AANode ptr = root; * Comprueba si el rbol esta lgicamente vacio
*/
while( ptr.right != nullNode )
ptr = ptr.right; public boolean isEmpty( ) {
return root == nullNode;
return ptr.element; }
}
/**
/** * Mtodo interno para insertar en un subrbol
*Busca un elemento en el rbol */
*/ private AANode insert( Comparable x, AANode t ) {
public Comparable find (Comparable x ) { if( t == nullNode )
AANode current = root; t = new AANode( x );
nullNode.element = x; else if( x.compareTo( t.element ) < 0 )
t.left = insert( x, t.left );
for( ; ; ) { else if( x.compareTo( t.element ) > 0 )
if( x.compareTo (current.element ) < 0 ) t.right = insert( x, t.right );
current = current.left; else
else if( x.compareTo( current.element ) > 0 ) throw new DuplicateItemException( x.toString( ) );
current = current.right;
else if( current != nullNode ) t = skew( t );
return current.element; t = split( t );
else return t;
return null; }
}
}
Comparacin Tcnicas y Algoritmos de Balanceo
CONCLUSIONES BIBLIOGRAFA
En primer lugar, se dio a conocer el Bijit, L. S. (20 de Enero de 2010). rboles AA. En L. S.
funcionamiento y aplicacin de algoritmos que son Bijit, Estructuras de Datos y Algoritmos (pgs. 1-
diseados recursivamente segn su forma de empleo. 27).
Por otra parte, en el anlisis de los algoritmos y Maldonado, M. (10 de Abril de 2005). Introduccin la
su eficiencia podremos interpretar la complejidad y el estructura heap. Obtenido de
mejor diseo al momento de implementar los http://slideplayer.es/slide/3488238/
algoritmos dndonos cuenta de su complejidad en el MEG. (13 de Abril de 2009). Estructuras de datos y
peor de los casos. algoritmos. Obtenido de
Es importante tener en cuenta que un rbol tiene http://estructuradedatosyalgoritmos.blogspot.com.c
una estructura de datos que nos permite almacenar una o/2009/04/monton-o-heap.html
cantidad significativa de datos de forma ordenada Thomas Wilburn. (10 de Noviembre de 2013).
siendo esto una parte importante al momento de Adventures in data structure: AA Trees. Obtenido de
implementacin y manejo de tipos de rboles segn lo http://thomaswilburn.net/typedefs/index.php/tree/aa
requiera el usuario. /aa_trees.html
REFERENCIAS DE FIGURAS
[1] Torsin en AA Tree. Arne Anderson. Balanced
Search Trees Made Simple. 1993.
[2] Divisin en AA Tree. Arne Anderson. Balanced
Search Trees Made Simple. 1993.
[3] Insercin en AA Tree. Leopoldo Silva Bijit.
rboles AA. 2010.
[4] Eliminar en AA Tree. Leopoldo Silva Bijit.
rboles AA. 2010.
[5] Insercin en Max Heap. En lnea. Disponible en:
http://estructuradedatosyalgoritmos.blogspot.com.co/2
009/04/monton-o-heap.html99999
[6] Eliminacin del mximo elemento del rbol. En
lnea. Disponible en: http://estructuradedatosyalgor
itmos.blogspot.com.co/2009/04/monton-o-heap.html