前序+中序->后序 中序+后序->前序
2024-08-25 06:13:28
前序+中序->后序
#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 ;
}
最新文章
- sql 判断 函数 存储过程是否存在的方法
- JS跳出框架返回上一页
- 【转】Web性能压力测试工具之ApacheBench(ab)详解
- FDTD扩展到所有频率
- Hibernate3回顾-4-事务和并发管理
- startup.bat闪退---tomcat环境变量配置中遇到的问题
- 关于使用cocoaPods,import导入时第三方库头文件没有提示问题的解决办法
- leetcode LRU Cache python
- What I Have Lived For(我为什么而活着-罗素)
- APP反编译第一课《如何找到核心代码》
- Java 脚本化编程指南
- FORM界面批量处理-全选框实现
- 漫谈jdbc
- Apache 、Tomcat、Nginx的区别
- java常用API的总结(1)
- SSE图像算法优化系列八:自然饱和度(Vibrance)算法的模拟实现及其SSE优化(附源码,可作为SSE图像入门,Vibrance算法也可用于简单的肤色调整)。
- Win10系列:C#应用控件基础16
- Latex一次添加两个图(并列),半栏
- LaTeX使用学习
- ngx_lua_waf
热门文章
- ManyToMany参数(through,db_constraint)
- 【Python】sasa版:文件中csv读取在写入csv读取的数据和执行是否成功。
- linux磁盘空间使用问题
- Jenkins时区设置
- 3 、操作元素 (属性 CSS 和 文档处理)
- python16_day35【算法】
- NodeJS学习笔记六
- 2017年浙江中医药大学程序设计竞赛 Solution
- poj1177 Picture 矩形周长并
- Errors occurred during the build. Errors running builder &#39;DeploymentBuilder&#39; on project