1086 Tree Traversals Again (25 分)(二叉树的遍历)
程序员文章站
2022-06-04 22:53:40
用栈来模拟一棵二叉树的先序遍历和中序遍历过程,求这棵二叉树的后序遍历 由题棵知道:push是先序遍历 pop是中序遍历 ......
用栈来模拟一棵二叉树的先序遍历和中序遍历过程,求这棵二叉树的后序遍历
由题棵知道:push是先序遍历
pop是中序遍历
#include<bits/stdc++.h> using namespace std; vector<int>pre; vector<int>in; vector<int>vec; const int n=50; int pre1[n]; int in1[n]; void print(int l1,int r1,int l2,int r2) { if(l1>r1||l2>r2) return; int mid=l2; while(in[mid]!=pre[l1]) mid++; print(l1+1,l1+mid-l2,l2,mid-1); print(l1+mid-l2+1,r1,mid+1,r2); vec.push_back(pre[l1]); } int main() { int n; scanf("%d",&n); stack<int>st; for(int i=0;i<2*n;i++){ char s[20]; scanf("%s",s); if(strcmp(s,"push")==0){ int num; scanf("%d",&num); st.push(num); pre.push_back(num); } else{ int t=st.top(); st.pop(); in.push_back(t); } } print(0,n-1,0,n-1); for(int i=0;i<vec.size();i++){ if(i) printf(" "); printf("%d",vec[i]); } printf("\n"); return 0; }
上一篇: 1004 Counting Leaves (30 分)(树的遍历)
下一篇: I/O芯片互换表
推荐阅读
-
1086 Tree Traversals Again (25 分)(二叉树的遍历)
-
浙大数据结构习题笔记:03-树3 Tree Traversals Again (25分)
-
【MOOC】03-树3 Tree Traversals Again (25分)
-
【PAT】A1086 Tree Traversals Again (25分)
-
PAT甲级1086 Tree Traversals Again (25分)|C++实现
-
1086. Tree Traversals Again (25)
-
PAT A1086 Tree Traversals Again (25分)
-
PAT甲级 1086 Tree Traversals Again 二叉树已知前序、中序求后序
-
1086 Tree Traversals Again (25 分)(二叉树的遍历)
-
1086 Tree Traversals Again (25分)[DFS][栈][模拟]