可以做图接单的网站广州网站建设 推广公司

张小明 2025/12/27 21:00:14
可以做图接单的网站,广州网站建设 推广公司,动画制作设计,公司管理app有哪些这一题的大意是说给出前序遍历和后序遍历#xff0c;让我们找是否构造一个唯一的二叉树#xff0c; 如果可以返回Yes#xff0c;并输出中序遍历序列#xff0c;如果不可以#xff0c;那么就是输出No#xff0c;并输出其中一种情况的中序遍历序列。 我们都知道通过前序和后…这一题的大意是说给出前序遍历和后序遍历让我们找是否构造一个唯一的二叉树如果可以返回Yes并输出中序遍历序列如果不可以那么就是输出No并输出其中一种情况的中序遍历序列。我们都知道通过前序和后序是无法确定一棵二叉树的因为我们无法确定左子树和右子树分别是哪些它不像中序遍历后序遍历一样可以找到根节点后通过根节点把左右子树分开而前序和后序是无法实现的我们无法确定哪些是左子树哪些是右子树。因此我们要假设某一个节点前序节点中根节点的后面的那一个节点是左子树用这种方法来建树如果在建树的过程中如果存在前序遍历的左子树和后序遍历的右子树相等也就是后序遍历根节点的前一个节点和前序遍历的根节点的后一个节点相同。如果一样说明不能构成唯一的序列因为后序遍历根节点的前一个节点和前序遍历的根节点的后一个节点相同说明这个节点充当左子树和充当右子树是一样的。因此不唯一。我们通过遍历序列来建树的方法是有套路的boolflag1;//假设为一node*build(intprestart,intpreend,intpoststart,intpostend){if(prestartpreend){returnnullptr;}if(prestartpreend){//为啥在只有一个节点的时候不能继续往下划分node*rootnew(node);root-datapre[prestart];root-lnullptr;root-rnullptr;returnroot;}node*rootnew(node);root-datapre[prestart];root-lnullptr;root-rnullptr;intxpre[prestart1];//左子树的根节点if(pre[prestart1]post[postend-1]){flag0;}intindex;for(intipoststart;ipostend;i){if(post[i]x){indexi;break;}}intlenindex-poststart1;//这就是左子树的长度root-lbuild(prestart1,prestart1len-1,poststart,poststartlen-1);root-rbuild(prestart1len,preend,poststartlen,postend-1);returnroot;}这与之前的前序中序/中序后序建树的方法不同的是if(prestartpreend){node*rootnew(node);root-datapre[prestart];root-lnullptr;root-rnullptr;returnroot;}当子树只有一个节点的时候我们需要特判直接返回。为什么因为在后面建树的时候intxpre[prestart1];//左子树的根节点这里很明显越界了往后的遍历也会出错后面在递归划分左右子树也是错的因此我们要在只有一个节点的时候特判返回其他和中序后序建树是类似的。可以看一下这篇博客PAT 1020 Tree Traversals因此这一题的完整代码就如下啦#includebits/stdc.h#includeiostreamusingnamespacestd;intN;vectorintpre;vectorintpost;structnode{intdata;structnode*l;structnode*r;};boolflag1;//假设为一node*build(intprestart,intpreend,intpoststart,intpostend){if(prestartpreend){returnnullptr;}if(prestartpreend){//为啥在只有一个节点的时候不能继续往下划分node*rootnew(node);root-datapre[prestart];root-lnullptr;root-rnullptr;returnroot;}node*rootnew(node);root-datapre[prestart];root-lnullptr;root-rnullptr;intxpre[prestart1];//左子树的根节点if(pre[prestart1]post[postend-1]){flag0;}intindex;for(intipoststart;ipostend;i){if(post[i]x){indexi;break;}}intlenindex-poststart1;//这就是左子树的长度root-lbuild(prestart1,prestart1len-1,poststart,poststartlen-1);root-rbuild(prestart1len,preend,poststartlen,postend-1);returnroot;}boolf0;voidinorder(node*root){if(root-l!nullptr)inorder(root-l);if(root!nullptr){if(f0){coutroot-data;f1;}elsecout root-data;}if(root-r!nullptr)inorder(root-r);}intmain(){intN;cinN;for(inti0;iN;i){intx;cinx;pre.push_back(x);}for(inti0;iN;i){intx;cinx;post.push_back(x);}node*rootbuild(0,N-1,0,N-1);//cout1endl;if(flag1){coutYesendl;}else{coutNoendl;}inorder(root);coutendl;return0;}注意在最后的中序遍历后要加一个换行否则会报格式错误。总结这一题仍是典型的根据遍历序列来建树唯一不同的时候我们要假设左子树是哪些节点。因为只知道前序遍历和后序遍历序列是无法构成唯一的二叉树的。我们要根据题意判断建成的树是否唯一。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

陕西天工建设有限公司网站wordpress做管理网站

【免费下载链接】vue-plugin-hiprint hiprint for Vue2/Vue3 ⚡打印、打印设计、可视化设计器、报表设计、元素编辑、可视化打印编辑 项目地址: https://gitcode.com/gh_mirrors/vu/vue-plugin-hiprint "电商订单打印混乱?物流单据格式不统一&#xff1f…

张小明 2025/12/26 5:36:57 网站建设

中科时代建设官方网站美食网站网页设计代码

数据库关系模型与数据定义知识详解 1. 规范化理论 规范化理论是数据库管理关系模型的基础,它围绕范式的概念构建。范式定义了一套约束系统,如果一个关系满足特定范式的约束,就称其处于该范式。可以将范式想象成一个洋葱,最外层是所有关系的集合,包括未规范化的关系。向洋…

张小明 2025/12/26 5:37:04 网站建设

django做的网站举例魅族的网站建设与安全

ACE-Step全解析:一键生成中文旋律的音乐API 在短视频平台每秒诞生上千条内容的今天,一段贴合情绪的背景音乐往往比画面本身更能击中用户。但对大多数开发者和创作者而言,配乐依然是个“高门槛”环节——要么依赖昂贵的版权曲库,要…

张小明 2025/12/26 5:37:01 网站建设

国内老牌的室内设计网站临沂市建设局网站

百度AI开放平台VS GPT-SoVITS:哪个更便宜? 在智能语音技术迅速渗透日常生活的今天,越来越多的企业和个人开始关注“用声音说话”的成本问题。无论是为客服系统配上自然流畅的播报音,还是打造专属品牌的虚拟代言人,语音…

张小明 2025/12/26 5:41:08 网站建设

西安网站建设聚星互联画出网站和目录结构图

Wan2.2-T2V-5B:让企业“秒级生成视频”不再是梦 🚀 你有没有想过,一条原本需要剪辑师花两天才能做出来的短视频,现在只需要输入一句话、等上几秒钟,就能自动生成?而且还能批量生产、实时响应、本地部署——…

张小明 2025/12/26 5:37:02 网站建设

网站设计专业的公司seo综合查询国产

Excalidraw如何帮助销售团队讲解解决方案架构? 在一次面向金融客户的售前会议上,销售代表没有打开PPT,而是分享了一个链接。客户点击后进入一个看似“手绘”的白板界面——线条略带抖动,字体随意却不失清晰。销售开始边讲边画&…

张小明 2025/12/26 5:37:03 网站建设