Advertisement
rfmonk

heapq_showtree.py

Jan 13th, 2014
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.62 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3.  
  4. import math
  5. from cStringIO import StringIO
  6.  
  7.  
  8. def show_tree(tree, total_width=36, fill=' '):
  9.     """Pretty-print a tree."""
  10.     output = StringIO()
  11.     last_row = -1
  12.     for i, n in enumerate(tree):
  13.         if i:
  14.             row = int(math.floor(math.log(i + 1, 2)))
  15.         else:
  16.             row = 0
  17.         if row != last_row:
  18.             output.write('\n')
  19.         columns = 2 ** row
  20.         col_width = int(math.floor((total_width * 1.0) / columns))
  21.         output.write(str(n).center(col_width, fill))
  22.         last_row = row
  23.     print output.getvalue()
  24.     print '-' * total_width
  25.     print
  26.     return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement