博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[hihoCoder] 后序遍历
阅读量:6672 次
发布时间:2019-06-25

本文共 1252 字,大约阅读时间需要 4 分钟。

The key of this problem is that we need not build the tree from scratch. In fact, we can direct obtain its post-order traversal results in a recursive manner and the problem has given nice hints on this.

The code is as follows.

1 #include 
2 #include
3 4 using namespace std; 5 6 string post_order(string pre_order, string in_order) { 7 if (pre_order.empty() && in_order.empty()) 8 return ""; 9 if (pre_order.length() == 1 && in_order.length() == 1)10 return pre_order;11 string root = pre_order.substr(0, 1);12 int rootInOrder = 0;13 while (in_order[rootInOrder] != pre_order[0])14 rootInOrder++;15 string pl = pre_order.substr(1, rootInOrder);16 string pr = pre_order.substr(1 + pl.length(), pre_order.length() - pl.length() - 1);17 string il = in_order.substr(0, rootInOrder);18 string ir = in_order.substr(rootInOrder + 1, in_order.length() - il.length() - 1);19 return post_order(pl, il) + post_order(pr, ir) + root;20 }21 22 int main(void) {23 string pre_order, in_order;24 while (cin >> pre_order >> in_order)25 cout << post_order(pre_order, in_order);26 return 0;27 }

转载于:https://www.cnblogs.com/jcliBlogger/p/4558682.html

你可能感兴趣的文章
bash基本命令的使用(笔记)
查看>>
windows_learn 002 用户管理和组策略
查看>>
kafka性能优化
查看>>
含有echart 图表的报表打印
查看>>
域控迁移为08 R2后无法访问Linux服务器共享
查看>>
我的友情链接
查看>>
华为认证考试
查看>>
我的友情链接
查看>>
nosql之redis简单安装与使用
查看>>
基于LVS的NAT模式实现PHP应用
查看>>
在物质与精神之间实现平衡
查看>>
vim 文本编辑器
查看>>
使用angular做微信内html5开发时碰到的两个坑
查看>>
pvst+
查看>>
博为峰Java技术题 ——JavaEE Servlet 国际化Ⅰ
查看>>
linux学习笔记(一)
查看>>
【Spring Boot】13.整合druid
查看>>
Java并发和并行的区别
查看>>
extjs down 的用法
查看>>
layabox基础:hello world
查看>>