#include<iostream> using namespace std; int post[] = {3, 4, 2, 6, 5, 1}; int mid[] = {3, 2, 4, 1, 6, 5}; void pre(int root, int start, int end) { if(start > end) return ; int i = start; while(i < end && mid[i] != post[root]) i++; //定位根在中序的位置 cout<<mid[i]; //访问当前处理的树的根 pre(root-1-(end-i), start, i - 1); //递归处理左子树 pre(root-1, i + 1, end); //递归处理右子树 } int main() { pre(5, 0, 5); return 0; }
点赞 评论

相关推荐

友友们,中小厂,设计模式,一般咋问呀,会问的很深吗
June丶:1. 按照设计模式分类回答:创建(工厂,单例),结构(组合,代理,外观),行为(策略,模版方法)。 2. 常见的应用:工厂+单例+策略(解耦,提高灵活性,扩展性),组合(解耦合,灵活,,提高代码复用),外观(提高安全性),模版(提高代码复用,灵活性) 3. 在回答出来这些常见实用场景+使用的优点基本就是满意回答了 4. 如果要是优质回答:可以提出你看过的源码中例如springboot中一些设计模式(不常用的代理,责任链,发布订阅),但是展现了你的钻研与热爱
点赞 评论 收藏
分享
牛客网
牛客企业服务