文章
15
粉丝
39
获赞
137
访问
5.7k
//二叉搜索树
//思路1:先根据第一个序列构造出二叉搜索树,再遍历剩下的序列 (麻烦)
//思路2:对于任意小于a[0]的两个数字,但凡它们在两个序列中的前后顺序不一样,就会构造成两个二叉树 (有漏洞,错误)
//思路3:反正就十个结点,最多十层,设置一个int a[2048];
#include<bits/stdc++.h>
using namespace std;
void buildtree(char b[2049],string a,int k,int index){ //建树
if(b[k]=='a'){b[k]=a[index];}
else if(b[k]<a[index]) buildtree(b,a,k*2+1,index);
else if(b[k]>a[index]) buildtree(b,a,k*2,index);
}
bool istree(char b[2049],string c,int k,int index){ //每个结点经过的父节点都必须在待验证串中本结点的前面
if(b[k]=='a')
return false;
else if(b[k]==c[index]) return true;
else...
登录后发布评论
暂无评论,来抢沙发