天梯赛 L2-011. 玩转二叉树(数据结构)

来源:互联网 发布:石青软件 编辑:程序博客网 时间:2024/04/30 19:34

思路:先序中序建树


#include<bits/stdc++.h>using namespace std;const int maxn = 100;int in[maxn],pre[maxn];struct Node{int val;Node *lchild;Node *rchild;};void build(Node *&root,int l,int r,int t){int pos = 0;    for(int i = l;i<=r;i++)if(in[i]==pre[t]){pos = i;break;}root = new Node;root->val = in[pos];root->lchild = NULL;root->rchild = NULL;if(pos>l)    build(root->lchild,l,pos-1,t+1);if(r>pos)build(root->rchild,pos+1,r,t+1+pos-l);}void print(Node*root){vector<int>ans;    queue<Node*>q;q.push(root);while(!q.empty()){Node*temp = q.front();q.pop();ans.push_back(temp->val);if(temp->rchild)q.push(temp->rchild);if(temp->lchild)q.push(temp->lchild);}for(int i = 0;i<ans.size()-1;i++)cout << ans[i] << " ";cout << ans[ans.size()-1] << endl;}int main(){    int n;cin >> n;for(int i = 1;i<=n;i++)   scanf("%d",&in[i]);for(int i = 1;i<=n;i++)scanf("%d",&pre[i]);Node *root;build(root,1,n,1);print(root);}



L2-011. 玩转二叉树

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越

给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。

输入格式:

输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。

输出格式:

在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。

输入样例:
71 2 3 4 5 6 74 1 3 2 6 5 7
输出样例:
4 6 1 7 5 3 2





0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 上眼皮过敏肿了怎么办 上眼皮又痒又肿怎么办 上眼皮红肿痛是怎么办 上眼皮肿的厉害怎么办 眼皮肿了还痒痒怎么办 眼睛被手指戳到怎么办 打球眼睛撞肿了怎么办 打球时眼睛被戳怎么办 狗眼睛被打充血怎么办 一只眼睛磨的慌怎么办 5个月宝宝结膜炎怎么办 金毛眼屎多白色怎么办 金毛眼红有眼屎怎么办 狗狗眼睛上火了怎么办 狗上火了眼屎多怎么办 金毛走路扭腰怎么办 金毛流鼻涕微黄怎么办 狗狗下眼皮红了怎么办 金毛眼睛打肿了怎么办 金毛的眼睛红怎么办 眼睛干涩有红血丝怎么办 小孩子眼睛红有眼屎怎么办 狗狗的肉垫粗糙怎么办 狗狗眼睛变蓝色怎么办 脸被太阳晒伤了怎么办 皮肤晒伤红肿痒怎么办 3岁儿童频繁眨眼怎么办 狗狗的眼睛红肿怎么办 脸过敏发红怎么办不痒 上眼皮红肿痒是怎么办 眼睛痒了几天了怎么办 眼睛肿了还痒怎么办 孩子脸上有红血丝怎么办 脸上长了红血丝怎么办 指甲受创出血了怎么办 手指被挤压紫了怎么办 眼睛撞了有淤血怎么办 下眼底有小白点怎么办 狗的白眼球充血怎么办 眼球有出血点是怎么办 吃阿胶上火了该怎么办