'`nodes` is a list of objects that have a proper __str__ representation.
`weights` is dictionary that sets weights to the nodes.  The default
weight is that all nodes are equal.'

def __init__(self, nodes=None, weights=None):

    self.ring = dict()
    self._sorted_keys = []
    self.nodes = nodes
    if (not weights):
        weights = {}
    self.weights = weights
    self._generate_circle()
