首页 > 代码库 > 已知前序中序求后序-二叉树
已知前序中序求后序-二叉树
writer:pprp
思路很容易理解,但是实现还是有一点难度,容易错
参考书目:《算法竞赛宝典》
代码如下:
//已知前序中序,求后序 #include <iostream> using namespace std; //a是前序,b是中序 void hwg(string a,string b) { int ll,lr; for(unsigned int i = 0; i < b.length(); i++) { if(a[0] == b[i]) //找到根节点 { ll = i; //分别计算出左右子树的长度 lr = b.length()-1-ll; if(ll) //左 { string part1(a,1,ll),part2(b,0,11); hwg(part1,part2); } if(lr) { string part3(a,1+ll,lr),part4(b,1+ll,lr); hwg(part3,part4); } cout << a[0]; break; } } } int main() { string a,b; cout <<"请输入前序:"<<endl; cin >> a; cout <<"请输入中序:"<<endl; cin >> b; cout <<"后序为:"<<endl; hwg(a,b); return 0; }
已知前序中序求后序-二叉树
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。