早教吧作业答案频道 -->数学-->
数据结构树的平均高度★数据输入输入第一行一个正整数N(2
题目详情
数据结构树的平均高度
★数据输入
输入第一行一个正整数N (2 < N < 10000) 表示该树有N个结点.
接下来N-1行,每行两个整数a b ,表示a 是b的父亲结点,数据保证所给的是一棵树,
结点的编号为1到N.
★数据输出
输出一行一个整数,表示该树的平均高度,结果保留3位小数.
示例
7
1 2
1 3
1 4
3 5
3 6
6 7
输出1.857
★数据输入
输入第一行一个正整数N (2 < N < 10000) 表示该树有N个结点.
接下来N-1行,每行两个整数a b ,表示a 是b的父亲结点,数据保证所给的是一棵树,
结点的编号为1到N.
★数据输出
输出一行一个整数,表示该树的平均高度,结果保留3位小数.
示例
7
1 2
1 3
1 4
3 5
3 6
6 7
输出1.857
▼优质解答
答案和解析
你这个是有问题的吧.7个节点,算出来是17/7=2.429
1个一层节点,3个两层节点,2个三层节点,1个四层节点,
1x1+3x2+2x3+1x4=17,你怎么算出来是13呢?
怎么会是1.857呢?
import os,sys
def find(root,f):
#print "root:",root," f:",f
for leaf in root:
#print ">>>leaf ",leaf
if leaf[0]==f:
#print "leaf[1]:",leaf[1]
return leaf[1]
else:
x=find(leaf[1],f)
if x!=None:
return x
return None
sum=0
def calc(root,level):
global sum
print "level,sum:",level,sum
for leaf in root:
print "level:",level,leaf
sum+=level*1
calc(leaf[1],level+1)
#sum+=num
print "sum:",sum
return sum
root=[]
tr=[(1,2),(1,3),(1,4),(3,5),(3,6),(6,7)]
for f,c in tr:
child=find(root,f)
#print "f,c,child:",f,c,child
if child==None:
leaf=[f,[ [c,[]] ]]
root.append( leaf )
else:
child.append( [ c,[] ] )
print root
print calc(root,1)/7.0
1个一层节点,3个两层节点,2个三层节点,1个四层节点,
1x1+3x2+2x3+1x4=17,你怎么算出来是13呢?
怎么会是1.857呢?
import os,sys
def find(root,f):
#print "root:",root," f:",f
for leaf in root:
#print ">>>leaf ",leaf
if leaf[0]==f:
#print "leaf[1]:",leaf[1]
return leaf[1]
else:
x=find(leaf[1],f)
if x!=None:
return x
return None
sum=0
def calc(root,level):
global sum
print "level,sum:",level,sum
for leaf in root:
print "level:",level,leaf
sum+=level*1
calc(leaf[1],level+1)
#sum+=num
print "sum:",sum
return sum
root=[]
tr=[(1,2),(1,3),(1,4),(3,5),(3,6),(6,7)]
for f,c in tr:
child=find(root,f)
#print "f,c,child:",f,c,child
if child==None:
leaf=[f,[ [c,[]] ]]
root.append( leaf )
else:
child.append( [ c,[] ] )
print root
print calc(root,1)/7.0
看了 数据结构树的平均高度★数据输...的网友还看了以下:
军训的学生进行队列表演,排成了一个7行7列的正方形队列,如果去掉一行一列,要去掉多少人?还剩下多少 2020-06-14 …
2014年12月底,我县上塘城区的公共自行车正式投入使用,许多市民骑自行车上下班.(1)骑自行车时 2020-07-01 …
把这个进行初等行变换化为行阶梯形矩阵怎么化啊?2-入2-2125-入-42-2-45-入-入-1 2020-08-02 …
一年级数学上册总复习按2、4、6、8、找出囗怎么算你能按2、4、6、8、2、4、6、8…的顺序从入口 2020-11-04 …
政治必修一(经济生活)改错题1、股票价格与股息收入成反比,与银行利息率成正比2、股份制是社会政治必修 2020-11-06 …
中国工商银行在曼谷宣布将其收购的ACL银行正式更名为中国工商银行(泰国)股份有限公司,这标志着中国工 2020-12-06 …
材料一:2004年8月2日,日本三井住友银行上海分行行长正木浩三在浙江银监局领取了外资金融机构设立申 2020-12-16 …
材料一2004年8月2日,日本三井住友银行上海分行行长正木浩三在浙江银监局领取了“外资金融机构设立申 2020-12-16 …
已知向量a,向量b,向量c都不平行,且入1向量a+入2向量b+入3向量c=0,则A.入1,入2,入3 2020-12-31 …
大学物理波动光学波长λ=500m的单色平行光斜入射在光栅常数a+b=2.10μm的光栅上,入射角i= 2021-01-20 …