前序+中序->后序

#include <bits/stdc++.h>
using namespace std; struct node
{
char elem;
node* l;
node* r;
};
node* dfs(char* pre,char* in,int len) //前序首地址、中序首地址、整个数组对应的长度
{
int i;
if(len==)
return NULL;
node* =new node;
s->elem=*(pre);
for(i=; i<len; i++)
if(in[i]==*(pre))
break;
//cout<<s->elem; 前序
s->l=dfs(pre+,in,i);
//cout<<s->elem; 中序
s->r=dfs(pre++i,in+i+,len--i);
cout<<s->elem; //后序
return s;
}
int main()
{
char s1[],s2[];
while(~scanf("%s",s1))
{
cin>>s2;
int len=strlen(s1);
node* s=dfs(s1,s2,len);
cout<<endl;
}
return ;
}

中序+后序->前序

#include <bits/stdc++.h>
using namespace std; struct node
{
char elem;
node* l;
node* r;
};
node* dfs(char* in,char* post,int len)
{
if(len == ) return NULL;
node *s = (node *)malloc(sizeof(node));
s->elem = *(post+len-);
int i;
for(i=len-; i>=; i--)
{
if(in[i] == s->elem)
break;
}
printf("%c", s->elem);
s->l = dfs(in, post, i);
s->r = dfs(in+i+, post+i, len--i);
return s;
}
int main()
{
char s1[],s2[];
while(~scanf("%s",s1))
{
cin>>s2;
int len=strlen(s1);
node* s=dfs(s1,s2,len);
cout<<endl;
}
return ;
}

最新文章

  1. sql 判断 函数 存储过程是否存在的方法
  2. JS跳出框架返回上一页
  3. 【转】Web性能压力测试工具之ApacheBench(ab)详解
  4. FDTD扩展到所有频率
  5. Hibernate3回顾-4-事务和并发管理
  6. startup.bat闪退---tomcat环境变量配置中遇到的问题
  7. 关于使用cocoaPods,import导入时第三方库头文件没有提示问题的解决办法
  8. leetcode LRU Cache python
  9. What I Have Lived For(我为什么而活着-罗素)
  10. APP反编译第一课《如何找到核心代码》
  11. Java 脚本化编程指南
  12. FORM界面批量处理-全选框实现
  13. 漫谈jdbc
  14. Apache 、Tomcat、Nginx的区别
  15. java常用API的总结(1)
  16. SSE图像算法优化系列八:自然饱和度(Vibrance)算法的模拟实现及其SSE优化(附源码,可作为SSE图像入门,Vibrance算法也可用于简单的肤色调整)。
  17. Win10系列:C#应用控件基础16
  18. Latex一次添加两个图(并列),半栏
  19. LaTeX使用学习
  20. ngx_lua_waf

热门文章

  1. ManyToMany参数(through,db_constraint)
  2. 【Python】sasa版:文件中csv读取在写入csv读取的数据和执行是否成功。
  3. linux磁盘空间使用问题
  4. Jenkins时区设置
  5. 3 、操作元素 (属性 CSS 和 文档处理)
  6. python16_day35【算法】
  7. NodeJS学习笔记六
  8. 2017年浙江中医药大学程序设计竞赛 Solution
  9. poj1177 Picture 矩形周长并
  10. Errors occurred during the build. Errors running builder &#39;DeploymentBuilder&#39; on project