博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
已知先序和中序遍历求后续遍历
阅读量:5250 次
发布时间:2019-06-14

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

#include
using namespace std;char a[100010];char b[100010];char c[100010];int cnt;void digui(int start,int n,int s,int e){ char x=a[cnt]; cnt++; if(start==n||s==e||s>e) return; c[e]=x; // printf("+++%d %d %d %d %d %c\n",start,n,cnt,s,e,x); int ge=s; int eend; for(int i=start;i<=n;i++){ if(ge>e) break; if(b[i]==x){ eend=i; continue; } // printf("%d %d %c %c\n",ge,i,c[ge],b[i]); c[ge]=b[i]; ge++; } // printf("%s\n",c); // printf("%d\n",eend); int chang=eend-start; if(start<=eend-1) digui(start,eend-1,start,eend-1); if(eend+1<=n) digui(eend+1,n,eend,e-1);}int main(){ scanf("%s",a); scanf("%s",b); int len=strlen (a); cnt=0; digui(0,len-1,0,len-1); printf("%s\n",c); return 0;}/*GDAFEMHZADEFGHMZ*//*DBACPMZXABCDMPXZ*/

      这个代码自己瞎写的555,不知道有没有大佬能给指出点问题,这个bug调的我很难受了

 

      理解起来很简单首先通过前序遍历求得根,然后通过中序遍历求的左子树和右子树,递归下去,因为我是存在数组里的所以很难受,感觉会有很多bug

转载于:https://www.cnblogs.com/fzw1523/p/10277552.html

你可能感兴趣的文章
AX 2009 Grid控件下多选行
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
perl 学习笔记
查看>>
31 Days of Windows Phone
查看>>
poj 1184(聪明的打字员)
查看>>
Ubuntu下面安装eclipse for c++
查看>>
C#压缩或解压(rar和zip文件)
查看>>
让IE浏览器支持CSS3圆角属性的方法
查看>>
巡风源码阅读与分析---nascan.py
查看>>
LiveBinding应用 dataBind 数据绑定
查看>>
Linux重定向: > 和 &> 区别
查看>>
nginx修改内核参数
查看>>
【欧拉函数模板题】最大公约数
查看>>
C 筛选法找素数
查看>>
TCP为什么需要3次握手与4次挥手(转载)
查看>>
IOC容器
查看>>
织梦仿站第三课:网站的文件分割
查看>>