文章

15

粉丝

39

获赞

137

访问

5.7k

头像
用顺序存储二叉树的方法建树再进行比较
P1317 浙江大学机试题
发布于2025年1月12日 13:59
阅读数 366

//二叉搜索树
//思路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...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发