Double linking array in Python

Posted by cdecker on Stack Overflow See other posts from Stack Overflow or by cdecker
Published on 2010-04-16T14:32:18Z Indexed on 2010/04/16 15:43 UTC
Read the original article Hit count: 359

Filed under:
|
|
|
|

Since I'm pretty new this question'll certainly sound stupid but I have no idea about how to approach this.

I'm trying take a list of nodes and for each of the nodes I want to create an array of predecessors and successors in the ordered array of all nodes.

Currently my code looks like this:

    nodes = self.peers.keys()
    nodes.sort()

    peers = {}
    numPeers = len(nodes)
    for i in nodes:
        peers[i] = [self.coordinator]
    for i in range(0,len(nodes)):
        peers[nodes[i%numPeers]].append(nodes[(i+1)%numPeers])
        peers[nodes[(i+1)%numPeers]].append(nodes[i%numPeers])
#        peers[nodes[i%numPeers]].append(nodes[(i+4)%numPeers])
#        peers[nodes[(i+4)%numPeers]].append(nodes[i%numPeers])

The last two lines should later be used to create a skip graph, but that's not really important. The problem is that it doesn't really work reliably, sometimes a predecessor or a successor is skipped, and instead the next one is used, and so forth. Is this correct at all or is there a better way to do this? Basically I need to get the array indices with certain offsets from each other.

Any ideas?

© Stack Overflow or respective owner

Related posts about python

Related posts about peer-to-peer