解题思路:
顺序存储二叉树
注意事项:
参考代码:
n=int(input()) s=input().strip() tree=['']*100000 # 存储每个节点的子串 def fun(tree,node,s):#构建树 start=0 end=len(s)-1 #print(s) tree[node]=s if start==end: return mid=(start+end)//2 left_node=2*node+1 right_node=2*node+2 fun(tree,left_node,s[start:mid+1]) fun(tree,right_node,s[mid+1:end+1]) fun(tree,0,s,) #print(tree) def check(s): #根据字串返回节点 #print(s,end=' ') b=0 I=0 for i in range(len(s)): if s[i]=='0': b+=1 else: I+=1 if b==0: return 'I' if I==0: return 'B' return 'F' def postOrderTree(tree,node):#后序遍历 left_node=2*node+1 right_node=2*node+2 if len(tree[node])!=1: postOrderTree(tree,left_node) if len(tree[node])!=1: postOrderTree(tree,right_node) print(check(tree[node]),end='') #print(tree[node]) postOrderTree(tree,0)
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:802 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:584 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:1031 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:625 |
【排队买票】 (C语言代码)浏览:900 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:798 |
1009题解浏览:752 |
字符逆序 (C语言代码)浏览:460 |
1118(求助_已解决)浏览:329 |
2006年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:669 |