#!/usr/bin/python3 """Construct a fixed-size-node append-only skip list shape.""" if __name__ == '__main__': n = 100 blockno = range(n) prev = [i-1 for i in blockno] jump = [((i ^ (i-1))) // 2 + 1 for i in blockno] skip = [i - j if j > 1 else -1 for i, j in zip(blockno, jump)] w = lambda n: '%3d' % n if n >= 0 else ' ' print('blok', ''.join(w(i) for i in blockno)) print('prev', ''.join(w(i) for i in prev)) #print('jump', ''.join(w(i) for i in jump)) print('skip', ''.join(w(i) for i in skip))