首先后序遍历:左右根,所以输出放在最后
其次它是一棵满二叉树,(2n−12^n-12n−1)
#include <cstdio>
using namespace std;
char s[1025]; int n;
void build(int l,int r){
if (l<r) build(l,(l+r)/2),build((l+r+1)/2,r);//左边,右边
bool B=1,I=1;
for (int i=1;i<=r-l+1;i++) if (s[l+i-1]=='1') B=0; else I=0;
if (B) putchar('B'); else if (I) putchar('I'); else putchar('F');
}
int main(){
scanf("%d\n%s",&n,s+1);
build(1,(1<<n));
return 0;
}
本文介绍了一个满二叉树后序遍历的实现方法,通过递归方式构建二叉树,并根据节点值判断是分支节点、内部节点还是叶节点。代码使用 C++ 实现。
997

被折叠的 条评论
为什么被折叠?



