您的位置:首页 > 其它

[数据生成器] 无根树

2016-07-04 21:58 344 查看
平生第一次实践Python语言,用于给一道数据结构题生成数据,在这里记录一下构造无根树的部分。

按引用传值好别扭……用list建邻接表,初始化的时候用
L=[[]]*(n+1)
,dfs遍历总是不对,调了好一会儿。结果,发现加边的时候list里所有元素都在变……

#!/usr/bin/python3
from random import *

n = int(input())
A = [i+1 for i in range(n)]
print(n)
for i in range(n):
x = randint(i, n-1)
A[i], A[x] = A[x], A[i]
for i in range(1, n):
x, y = A[i], A[randint(0, i-1)]
if randint(0, 1) == 0:
print('{} {}'.format(x, y))
else:
print('{} {}'.format(y, x))


还有简化版本。

#!/usr/bin/python3
from random import *
n = int(input())
print(n)
for i in range(1, n):
print('{} {}'.format(i, randint(1, i-1))


这样的树从形态上来讲是随机的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: