1020. Tree Traversals (25)
来源:互联网 发布:windows 文件管理工具 编辑:程序博客网 时间:2024/05/21 15:49
题目:https://www.patest.cn/contests/pat-a-practise/1020
主要:for里和外使用同一个变量,导致长度计算错误,注意变量的命名
#include<cstdio>#include<algorithm>#include<queue>using namespace std;#define MAXN 35struct node{int data;node *lchild,*rchild;}*root;int n,flag = 0,pos[MAXN],in[MAXN];node* creat(int PosL,int PosR, int InL,int InR){//注意返回的情况!if(PosL > PosR)return NULL;node *now = new node;now->data = pos[PosR];int k=0,numL=0;for(k=InL; k<=InR; k++){if(in[k] == pos[PosR])break;}numL = k - InL;now->lchild = creat(PosL, PosL+numL-1,InL,k-1);now->rchild = creat(PosL+numL,PosR-1, k+1, InR);return now;}void level_order(node* root){queue<node*> qu;qu.push(root);while (!qu.empty()){node* front = qu.front();qu.pop();if(flag == 0){printf("%d",front->data);flag = 1;}else{printf(" %d",front->data);}if(front->lchild != NULL)qu.push(front->lchild);if(front->rchild != NULL)qu.push(front->rchild);}}int main(){scanf("%d",&n);for(int i=0; i<n; i++){scanf("%d",&pos[i]);}for(int i=0; i<n; i++)scanf("%d",&in[i]);root = creat(0,n-1,0,n-1);level_order(root);return 0;}
0 0
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 1020. Tree Traversals (25)
- 剪邮票
- 排序——交换排序之冒泡排序
- 【UESTC】保护果实
- 安卓开发bundle传值
- Wooden Signs dp
- 1020. Tree Traversals (25)
- LeetCode 448. Find All Numbers Disappeared in an Array
- 自己写项目才是最快的
- Java Generated Code
- 极光推送
- Error: JAVA_HOME not found in your environment. Please set the JAVA_HOME variable in your environmen
- 04-树4 是否同一棵二叉搜索树 (25分)
- C#130课的主要内容
- 作为程序员的你,会选择奋斗在一线城市还是回归故乡发展?