PAT (Advanced Level) Practice - 1138 Postorder Traversal(25 分)
发布日期:2021-06-30 23:43:05 浏览次数:2 分类:技术文章

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

题目链接:

 

题目大意:前序 + 中序 => 后序第一位元素。

 

解题思路:之前都是用给出的序列值作为下标,发现这题用这种办法会段错误,因为题目没说给出的序列值是在下标1~N范围内,所以要用纯粹的下标来做。

 

AC 代码

#include
#include
#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007using namespace std;typedef long long ll;const int maxn=5e4+1000;int f;int pre[maxn], in[maxn];struct node{ int l,r,d;}T[maxn];int create(int l1,int r1,int l2,int r2) // in pre{ if(l2>r2) return -1; int rt=l2; int p1=l1,p2; while(in[p1]!=pre[rt]) p1++; p2=p1-l1; T[rt].d=pre[rt]; T[rt].l=create(l1,p1-1,l2+1,l2+p2); T[rt].r=create(p1+1,r1,l2+p2+1,r2); return rt;}void postT(int rt){ if(rt==-1 || !f) return; postT(T[rt].l); postT(T[rt].r); if(f) f=0, printf("%d\n",T[rt].d);}int main(){ int n; scanf("%d",&n); for(int i=0;i

 

转载地址:https://lux-sun.blog.csdn.net/article/details/82020150 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:PAT (Advanced Level) Practice - 1145 Hashing - Average Search Time(25 分)
下一篇:PAT (Advanced Level) Practice - 1130 Infix Expression(25 分)

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月11日 11时38分45秒