依次输入数据序列34,12,9,7,23,19,72,55,31,22,则下面()是根据该输入序列建立的二叉查找树
A.
B.
C.
D.
A.
B.
C.
D.
(1)从空树开始构造平衡二叉搜索树,画出每加入一个新结点时二叉树的形态。若发生不平衡,指明需进行的平衡旋转的类型及平衡旋转的结果
(2)计算该平衡二叉搜索树在等概率下的搜索成功的平均搜索长度和搜索不成功的平均搜索长度。
A.可能是 2 ~ n中的任何一个B.一定是 2C.一定是 n-1D.一定是 n
A、import queue as que import math x=[] y=[] def koch(ax,ay,bx,by,c): dist=(bx-ax)*(bx-ax)+(by-ay)*(by-ay) if(dist<=c): x.append(ax) x.append(bx) y.append(ay) y.append(by) else: cx="ax+(bx-ax)/3" cy="ay+(by-ay)/3" ex="bx-(bx-ax)/3" ey="by-(by-ay)/3" l="math.sqrt(math.pow(ex-cx,2)+pow(ey-cy,2))" alpha="math.atan((ey-cy)/(ex-cx))" if (alpha>=0 and (ex-cx)<0) or and alpha="alpha+math.pi" dy="cy+math.sin(alpha+math.pi/3)*l" dx="cx+math.cos(alpha+math.pi/3)*l" koch(ax,ay,bx,by,c) koch(bx,by,cx,cy,c) koch(cx,cy,dx,dy,c) koch(dx,dy,ex,ey,c)> B、import queue as que import math x=[] y=[] def koch(ax,ay,bx,by,c): dist=(bx-ax)*(bx-ax)+(by-ay)*(by-ay) if(dist<=c*c): x.append(ax) x.append(bx) y.append(ay) y.append(by) else: cx="ax+(bx-ax)/3" cy="ay+(by-ay)/3" ex="bx-(bx-ax)/3" ey="by-(by-ay)/3" l="math.sqrt(d/3)" alpha="math.atan((ey-cy)/(ex-cx))" if (alpha>=0 and (ex-cx)<0) or and alpha="alpha+math.pi" dy="cy+math.sin(alpha+math.pi/3)*l" dx="cx+math.cos(alpha+math.pi/3)*l" koch(ax,ay,cx,cy,c) koch(cx,cy,dx,dy,c) koch(cx,cy,ex,ey,c) koch(ex,ey,dx,dy,c)> C、import queue as que import math import matplotlib.pyplot as plt x=[] y=[] def koch(ax,ay,bx,by,c): dist=(bx-ax)*(bx-ax)+(by-ay)*(by-ay) if(dist<=c*c): x.append(ax) x.append(bx) y.append(ay) y.append(by) else: cx="ax+(bx-ax)/3" cy="ay+(by-ay)/3" ex="bx-(bx-ax)/3" ey="by-(by-ay)/3" l="math.sqrt(math.pow(ex-cx,2)+pow(ey-cy,2))" alpha="math.atan((ey-cy)/(ex-cx))" if (alpha>=0 and (ex-cx)<0) or and alpha="alpha+math.pi" dy="cy+math.sin(alpha+math.pi/3)*l" dx="cx+math.cos(alpha+math.pi/3)*l" koch(ax,ay,cx,cy,c) koch(cx,cy,dx,dy,c) koch(dx,dy,ex,ey,c) koch(ex,ey,bx,by,c)> D、import queue as que import math x=[] y=[] def koch(ax,ay,bx,by,c): dist=(bx-ax)*(bx-ax)+(by-ay)*(by-ay) if(dist<=c*c): x.append(ax) x.append(bx) y.append(ay) y.append(by) else: cx="ax+(bx-ax)/3" cy="ay+(by-ay)/3" ex="bx-(bx-ax)/3" ey="by-(by-ay)/3" l="math.sqrt(d/3)" alpha="math.atan((ey-cy)/(ex-cx))" if (alpha>=0 and (ex-cx)<0) or and alpha="alpha+math.pi" dy="cy+math.sin(alpha+math.pi/3)*l" dx="cx+math.cos(alpha+math.pi/3)*l" koch(ax,ay,cx,cy,c) koch(ex,ey,dx,dy,c) koch(cx,cy,ex,ey,c) koch(dx,dy,bx,by,c)>
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!