jmetal.util.avl
Class AvlTree<T>

java.lang.Object
  extended by jmetal.util.avl.AvlTree<T>

public class AvlTree<T>
extends java.lang.Object

Created with IntelliJ IDEA. User: Antonio J. Nebro Date: 08/07/13 Time: 15:51 Class implementing Avl trees.


Constructor Summary
AvlTree(java.util.Comparator comparator_)
          Constructor
 
Method Summary
 boolean AvlIsEmpty()
           
 int compareNodes(AvlNode node1, AvlNode node2)
          Comparator
 void delete(T item)
           
 void deleteLeafNode(AvlNode<T> node)
           
 void deleteNode(AvlNode<T> node)
           
 void deleteNodeWithALeftChild(AvlNode<T> node)
           
 void deleteNodeWithARightChild(AvlNode<T> node)
           
 void doubleLeftRotation(AvlNode<T> node)
           
 void doubleRightRotation(AvlNode<T> node)
           
 AvlNode<T> findSuccessor(AvlNode<T> node)
           
 int getBalance(AvlNode<T> node)
           
 AvlNode<T> getTop()
           
 int height(AvlNode<T> node)
           
 void insert(T item)
           
 void insertAvlNode(AvlNode node)
           
 void insertNodeLeft(AvlNode<T> node)
          Insert node in the left of its nearest node
 void insertNodeRight(AvlNode<T> node)
          Insert node in the right of its nearest node
 void insertTop(AvlNode node)
           
 void leftRotation(AvlNode<T> node)
           
 void rebalance(AvlNode<T> node)
           
 void rightRotation(AvlNode<T> node)
           
 AvlNode<T> search(T item)
           
 int searchClosestNode(AvlNode node)
          Searches for the closest node of the node passed as argument
 AvlNode<T> searchNode(AvlNode<T> targetNode)
           
 void setTop(AvlNode<T> top)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AvlTree

public AvlTree(java.util.Comparator comparator_)
Constructor

Parameters:
comparator_ -
Method Detail

insert

public void insert(T item)

insertAvlNode

public void insertAvlNode(AvlNode node)

search

public AvlNode<T> search(T item)

searchNode

public AvlNode<T> searchNode(AvlNode<T> targetNode)

delete

public void delete(T item)

deleteNode

public void deleteNode(AvlNode<T> node)

deleteLeafNode

public void deleteLeafNode(AvlNode<T> node)

deleteNodeWithALeftChild

public void deleteNodeWithALeftChild(AvlNode<T> node)

deleteNodeWithARightChild

public void deleteNodeWithARightChild(AvlNode<T> node)

searchClosestNode

public int searchClosestNode(AvlNode node)
Searches for the closest node of the node passed as argument

Parameters:
node -
Returns:
-1 if node has to be inserted in the left, +1 if it must be inserted in the right, 0 otherwise

findSuccessor

public AvlNode<T> findSuccessor(AvlNode<T> node)

insertNodeLeft

public void insertNodeLeft(AvlNode<T> node)
Insert node in the left of its nearest node

Parameters:
node - REQUIRES: a previous call to searchClosestNode(node)

insertNodeRight

public void insertNodeRight(AvlNode<T> node)
Insert node in the right of its nearest node

Parameters:
node - REQUIRES: a previous call to searchClosestNode(node)

compareNodes

public int compareNodes(AvlNode node1,
                        AvlNode node2)
Comparator

Parameters:
node1 -
node2 -
Returns:
-1 if node1 < node2, +1 if node1 > node2; 0 if node1 == node2

rebalance

public void rebalance(AvlNode<T> node)

leftRotation

public void leftRotation(AvlNode<T> node)

rightRotation

public void rightRotation(AvlNode<T> node)

doubleLeftRotation

public void doubleLeftRotation(AvlNode<T> node)

doubleRightRotation

public void doubleRightRotation(AvlNode<T> node)

getBalance

public int getBalance(AvlNode<T> node)

AvlIsEmpty

public boolean AvlIsEmpty()

insertTop

public void insertTop(AvlNode node)

getTop

public AvlNode<T> getTop()

setTop

public void setTop(AvlNode<T> top)

height

public int height(AvlNode<T> node)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object