二叉树学习

目录

一.二叉树已知先/后+中序,求后/先序

已知先s1+中s2,求后

 已知中s1+后s2,求先


一.二叉树已知先/后+中序,求后/先序
已知先s1+中s2,求后
#include<bits/stdc++.h> 
using namespace std;
void print(string s1,string s2)
{
	if(s1=="\0"||s2=="\0")
		return ;
	int pos=s2.find(s1[0]);//找到主根位置
	print(s1.substr(1,pos),s2.substr(0,pos));//左 
	print(s1.substr(pos+1),s2.substr(pos+1));//右 
	cout<<s1[0];//根 
}
int main()
{
	string s1,s2;
	cin>>s1>>s2;
	print(s1,s2);
	return 0; 
}

补充:

1.find

找字符串某个特定字符的位置,下标从0开始。

如 hello.find(2) 就是l。

2.substr

截取字符串的部分,下标从0开始。

如 hello.substr(2,3) 就是“llo";若是 hello.substr(0) 就是“hello"。

 已知中s1+后s2,求先
#include<bits/stdc++.h> 
using namespace std;
void print(string s1,string s2)
{
	if(s1=="\0"||s2=="\0")
		return ;
	int pos=s1.find(s2[s2.size()-1]);
	cout<<s1[pos];//根 
	print(s1.substr(0,pos),s2.substr(0,pos));//左 
	print(s1.substr(pos+1),s2.substr(pos,s2.size()-pos-1));//右  
}
int main()
{
	string s1,s2;
	cin>>s1>>s2;
	print(s1,s2);
	return 0;
}

更多的后面慢慢补充>W<

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值