<p>这里有一个类似于@Bula的方法,但是它使用元组作为树中的“内部节点”。你可以随意重新贴标签。我没有画任何标签,所以你不会在这里看到它们。在</p>
<pre><code>import networkx as nx
import uuid
tree = ((((((((8953L, 3409L), (8334L, 7375L)), ((7375L, 7220L), (8420L, 8556L))), (((7375L, 7220L), (8420L, 8556L)), ((8420L, 8556L), (8556L, 10089L)))), ((((11021L, 11462L), (6778L, 6854L)), ((10691L, 6652L), (11061L, 11230L))), (((6652L, 5660L), (10691L, 6652L)), ((8390L, 6032L), (10984L, 11061L))))), (((((7406L, 11878L), (8398L, 7493L)), ((10419L, 10235L), (6377L, 6439L))), (((8367L, 6199L), (7263L, 7406L)), ((6199L, 7900L), (8367L, 6199L)))), ((((8667L, 9142L), (6491L, 7771L)), ((10391L, 8808L), (8667L, 9142L))), (((10391L, 8808L), (8667L, 9142L)), ((5882L, 9575L), (7008L, 6048L)))))), ((((((11087L, 9623L), (9013L, 9969L)), ((11294L, 9923L), (8390L, 6032L))), (((10656L, 11087L), (11087L, 9623L)), ((11087L, 9623L), (9013L, 9969L)))), ((((6590L, 10794L), (12483L, 6590L)), ((10794L, 8997L), (6590L, 10794L))), (((12386L, 12544L), (8196L, 11139L)), ((11266L, 11269L), (10751L, 12192L))))), (((((11266L, 11269L), (10751L, 12192L)), ((6905L, 8811L), (11180L, 9732L))), (((12338L, 12701L), (12474L, 12569L)), ((9948L, 10073L), (8577L, 10217L)))),
((((8997L, 11091L), (11091L, 11210L)), ((10751L, 12192L), (12543L, 12143L))), (((961L, 12029L), (9262L, 11900L)), ((3825L, 7779L), (10500L, 11781L))))))), (((((((11318L, 10181L), (12334L, 12414L)), ((12292L, 11221L), (11221L, 9262L))), (((12721L, 961L), (11245L, 5132L)), ((12414L, 11245L), (12721L, 961L)))), ((((11248L, 12034L), (9972L, 11248L)), ((10948L, 12013L), (10823L, 5602L))), (((10839L, 10948L), (6673L, 10839L)), ((10729L, 9687L), (1300L, 12274L))))), (((((11087L, 9623L), (9013L, 9969L)), ((11294L, 9923L), (8390L, 6032L))),
(((10656L, 11087L), (11087L, 9623L)), ((11087L, 9623L), (9013L, 9969L)))), ((((6590L, 10794L), (12483L, 6590L)), ((10794L, 8997L), (6590L, 10794L))), (((12386L, 12544L), (8196L, 11139L)), ((11266L, 11269L), (10751L, 12192L)))))), ((((((11162L, 9208L), (6992L, 5965L)), ((9208L, 11317L), (10834L, 11318L))), (((12705L, 12769L), (3825L, 7779L)), ((12334L, 12414L), (12769L, 7059L)))), ((((11318L, 10181L), (12334L, 12414L)), ((12292L, 11221L), (11221L, 9262L))), (((12721L, 961L), (11245L, 5132L)), ((12414L, 11245L), (12721L, 961L))))), (((((11318L, 10181L), (12334L, 12414L)), ((12292L, 11221L), (11221L, 9262L))), (((12721L, 961L), (11245L, 5132L)), ((12414L, 11245L), (12721L, 961L)))), ((((11248L, 12034L), (9972L, 11248L)), ((10948L, 12013L), (10823L, 5602L))), (((10839L, 10948L), (6673L, 10839L)), ((10729L, 9687L), (1300L, 12274L)))))))), ((((((((9386L, 8168L), (8876L, 7622L)), ((6311L, 5727L), (7174L, 3611L))), (((8225L, 8804L), (8804L, 6369L)), ((8289L, 8953L), (8225L, 8804L)))), ((((9380L, 7698L), (6450L, 8876L)), ((9386L, 8168L), (8876L, 7622L))), (((9386L, 8168L), (8876L, 7622L)), ((6311L, 5727L), (7174L, 3611L))))), (((((9225L, 9777L), (6895L, 8167L)), ((10686L, 5395L), (12384L, 6816L))), (((5395L, 10211L), (10686L, 5395L)), ((10891L, 10127L), (6816L, 5622L)))), ((((9175L, 7918L), (6780L, 8004L)), ((6780L, 8004L), (10831L, 9175L))), (((6908L, 11020L), (10419L, 10235L)), ((11200L, 9756L), (11021L, 11462L)))))),
((((((10031L, 8445L), (6165L, 8329L)), ((8445L, 12689L), (10031L, 8445L))), (((5350L, 6189L), (7374L, 5782L)), ((8355L, 7054L), (6536L, 9380L)))), ((((5395L, 10211L), (10686L, 5395L)), ((10891L, 10127L), (6816L, 5622L))), (((8355L, 7054L), (6536L, 9380L)), ((9380L, 7698L), (6450L, 8876L))))), (((((7613L, 11184L), (11184L, 5673L)), ((8929L, 5318L), (8378L, 8929L))), (((10419L, 10235L), (6377L, 6439L)), ((8378L, 8929L), (5363L, 5910L)))), ((((7406L, 11878L), (8398L, 7493L)), ((10419L, 10235L), (6377L, 6439L))), (((8367L, 6199L), (7263L, 7406L)), ((6199L, 7900L), (8367L, 6199L))))))), (((((((8953L, 3409L), (8334L, 7375L)), ((7375L, 7220L), (8420L, 8556L))), (((7375L, 7220L), (8420L, 8556L)), ((8420L, 8556L), (8556L, 10089L)))), ((((11021L, 11462L), (6778L, 6854L)), ((10691L, 6652L), (11061L, 11230L))), (((6652L, 5660L), (10691L, 6652L)), ((8390L, 6032L), (10984L, 11061L))))), (((((7406L, 11878L), (8398L, 7493L)), ((10419L, 10235L), (6377L, 6439L))), (((8367L, 6199L), (7263L, 7406L)), ((6199L, 7900L), (8367L, 6199L)))),
((((8667L, 9142L), (6491L, 7771L)), ((10391L, 8808L), (8667L, 9142L))), (((10391L, 8808L), (8667L, 9142L)), ((5882L, 9575L), (7008L, 6048L)))))), ((((((11087L, 9623L), (9013L, 9969L)), ((11294L, 9923L), (8390L, 6032L))), (((10656L, 11087L), (11087L, 9623L)), ((11087L, 9623L), (9013L, 9969L)))), ((((6590L, 10794L), (12483L, 6590L)), ((10794L, 8997L), (6590L, 10794L))), (((12386L, 12544L), (8196L, 11139L)), ((11266L, 11269L), (10751L, 12192L))))), (((((11266L, 11269L), (10751L, 12192L)), ((6905L, 8811L), (11180L, 9732L))), (((12338L, 12701L), (12474L, 12569L)), ((9948L, 10073L), (8577L, 10217L)))),
((((8997L, 11091L), (11091L, 11210L)), ((10751L, 12192L), (12543L, 12143L))), (((961L, 12029L), (9262L, 11900L)), ((3825L, 7779L), (10500L, 11781L))))))))
def add_edges(graph, tree):
try:
left,right = tree
except TypeError:
return
graph.add_edge(tree,left)
graph.add_edge(tree,right)
add_edges(graph,left)
add_edges(graph,right)
if __name__ == '__main__':
import matplotlib.pyplot as plt
graph = nx.Graph()
add_edges(graph,tree)
nx.draw(graph,node_size=10,with_labels=False)
# nicer layout with graphviz is you have it
# nx.draw_graphviz(graph,node_size=10,with_labels=False)
plt.show()
</code></pre>