def __init__(self, graph, start):
for f in glob.glob(self.WSDIR + '/*.png'):
os.remove(f)
for f in glob.glob(self.WSDIR + '/*.dot'):
os.remove(f)
self._n = 0
ranks = {start: 0}
for s, d in bfs_edges(graph, start):
ranks[d] = ranks[s] + 1
_ranks = {}
for n, r in ranks.items():
_ranks.setdefault(r, set()).add(n)
ranks = _ranks
self._ranks = ''
fmt = ' "{n}" [pos="{x},{y}!"] ;\n'
for r, ns in sorted(ranks.items()):
ns = sorted([str(n) for n in ns])
for i, n in enumerate(ns):
x = i * 2 + r % 2
y = -r * 2
self._ranks += fmt.format(n=n, x=x, y=y)
评论列表
文章目录