当前位置: 首页 > wzjs >正文

摄影网站 蜂鸟推广计划与推广单元的区别

摄影网站 蜂鸟,推广计划与推广单元的区别,新手卖家做来赞达网站如何,外贸有哪些网站L2-006 树的遍历 问题描述格式输入格式输出样例输入样例输出评测用例规模与约定解析参考程序难度等级 问题描述 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 格式输入 输入第一行给出一个正整数N&#xff0…

L2-006 树的遍历

  • ==问题描述==
  • ==格式输入==
  • ==格式输出==
  • ==样例输入==
  • ==样例输出==
  • ==评测用例规模与约定==
  • ==解析==
  • ==参考程序==
  • 难度等级


问题描述

给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。


格式输入

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


格式输出

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


样例输入

7
2 3 1 5 7 6 4
1 2 3 4 5 6 7

样例输出

4 1 6 3 5 7 2

评测用例规模与约定

代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB


解析

方法思路
重建二叉树:后序遍历的最后一个元素是根节点,在中序遍历中找到这个根节点,根节点左边的部分是左子树的中序遍历,右边是右子树的中序遍历。根据左子树的节点数目,可以在后序遍历中分割出左子树和右子树的后序遍历。递归处理左右子树即可重建二叉树。

层序遍历:使用队列进行广度优先搜索(BFS),依次访问每一层的节点,并按顺序输出。


参考程序

#include <iostream>
#include <vector>
#include <queue>
#include <unordered_map>
using namespace std;
struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder, int inStart, int inEnd, int postStart, int postEnd, unordered_map<int, int>& inMap) {if (inStart > inEnd || postStart > postEnd) return nullptr;int rootVal = postorder[postEnd];TreeNode* root = new TreeNode(rootVal);int inRoot = inMap[rootVal];int numsLeft = inRoot - inStart;root->left = buildTree(inorder, postorder, inStart, inRoot - 1, postStart, postStart + numsLeft - 1, inMap);root->right = buildTree(inorder, postorder, inRoot + 1, inEnd, postStart + numsLeft, postEnd - 1, inMap);return root;
}
vector<int> levelOrder(TreeNode* root) {vector<int> result;if (!root) return result;queue<TreeNode*> q;q.push(root);while (!q.empty()) {TreeNode* node = q.front();q.pop();result.push_back(node->val);if (node->left) q.push(node->left);if (node->right) q.push(node->right);}   return result;
}
int main() {int N;cin >> N;vector<int> postorder(N);vector<int> inorder(N);for (int i = 0; i < N; ++i) {cin >> postorder[i];}for (int i = 0; i < N; ++i) {cin >> inorder[i];}unordered_map<int, int> inMap;for (int i = 0; i < N; ++i) {inMap[inorder[i]] = i;}TreeNode* root = buildTree(inorder, postorder, 0, N - 1, 0, N - 1, inMap);vector<int> level = levelOrder(root);for (int i = 0; i < level.size(); ++i) {if (i != 0) cout << " ";cout << level[i];}cout << endl;return 0;
}

难度等级

⭐️⭐️⭐️(1~10星)

以个人刷题整理为目的,如若侵权,请联系删除~


文章转载自:

http://x4z8xthk.bkqdg.cn
http://ER22wYl0.bkqdg.cn
http://zPrQViOj.bkqdg.cn
http://wBisuSnZ.bkqdg.cn
http://UJ7lRyzf.bkqdg.cn
http://HLe9G3Fh.bkqdg.cn
http://AIB42da7.bkqdg.cn
http://NUenxkTb.bkqdg.cn
http://jQMpO1Cn.bkqdg.cn
http://r4IAIF2Z.bkqdg.cn
http://2P1FO4yW.bkqdg.cn
http://OzR5VKQe.bkqdg.cn
http://YFL7vG5w.bkqdg.cn
http://WZOoJLWr.bkqdg.cn
http://qh1rFPoH.bkqdg.cn
http://KSRmVeLN.bkqdg.cn
http://bAlpt5dH.bkqdg.cn
http://G3Sw1rWL.bkqdg.cn
http://w1GcWlDP.bkqdg.cn
http://O8RgL6Fu.bkqdg.cn
http://YV1erxnf.bkqdg.cn
http://wEXS8KOz.bkqdg.cn
http://TZ0YqWMa.bkqdg.cn
http://7hS2dieN.bkqdg.cn
http://u8XaQEHa.bkqdg.cn
http://bR9tqZeu.bkqdg.cn
http://h1YAAeQ3.bkqdg.cn
http://LV3rrfKU.bkqdg.cn
http://eTomrzW7.bkqdg.cn
http://1QcT8v6C.bkqdg.cn
http://www.dtcms.com/wzjs/631482.html

相关文章:

  • 福建建设执业资格中心网站宠物美容网站建设合同书
  • 青岛建设银行官方网站做响应式网站最大宽度
  • 做教育的网站有哪些浙江网站建设价格费用
  • 黄页网站大全免费网在线大学生50个创新产品设计
  • 外贸网站源码去一品资源淮安专业做网站
  • 自己设计的网站如何推广区块链的网站怎么做
  • 永久免费的电销外呼系统seo如何推广网站
  • 网站推广员大连网站建设资讯
  • 慈利网站建设太原编程培训机构
  • 做网站可以赚钱吗?网页制作教程百度网盘
  • 网站制作app开发公司万网做网站顺序
  • 网站标题字体设计药品网站订单源码
  • 怎么建设局域网网站做塑料的网站
  • 广东阳春市建设局网站百度外链查询工具
  • 环保网站模板 htmlwordpress install.php 500
  • 优质网站建设的设计要点wordpress产品页面没有分类选择
  • 做招聘网站做服务器多少钱网站如何添加代码
  • 茂名网站建设优化沈阳网站做
  • 专做高中知识的网站wordpress自己安装了插件吗
  • 方山建站报价萝岗电子商务网站建设
  • 赤峰建网站的电话华东民航机场建设公司网站
  • 汉高建设公司网站片头制作网站
  • 金堂县建设局网站自己建立网站教程
  • 小型深圳网站定制开发顺德手机网站建设
  • 扁平化设计网站建设小红书关键词排名怎么做
  • 出名的网站建设公司网站如果不备案吗
  • 网站地址ip域名查询将网站的字体设计成百分比的形式要怎样定义
  • 团购做的好的网站成都建设企业网站
  • 常宁网站制作wordpress带会员的主题
  • 公司网站内容太原网站优化价格