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

P1030 求先序序列

点击查看代码
#include<bits/stdc++.h>
using namespace std;string in,post;void preorder(int inl,int inr,int postl,int postr)
{if(inl>inr||postl>postr) return;//找到根节点并输出char root=post[postr];cout<<root;//在中序排列中找到根节点int k=inl;while(in[k]!=root) k++;int leftsize=k-inl;//依次遍历左右树preorder(inl,k-1,postl,postl+leftsize-1);preorder(k+1,inr,postl+leftsize,postr-1);    
}int main()
{cin>>in>>post;int n=in.size();preorder(0,n-1,0,n-1);return 0;
}
、 本题的核心考察点实则是递归,因为没有涉及到关键的恢复状态,递归的逻辑就是遵从中序和后序遍历的规则,依次找到分割的根节点,然后递归对应的数,再输出根节点,直到最后一棵树为空。 此外,这道题是要把中序和后序结合起来的,后序列用来确定每一课数目的根节点,就是序列的最后一个元素。而中序则在根节点已知的情况下,求出左右树的节点数,以此再度划分左右树,这两者结合才可以输出先序 再此外,理解树遍历的原理也是很重要的,先序遍历是从根节点出发,然后直接输出根节点,到达左树碰到一个节点就输出一个,然后右边树同理。中序遍历则是从根节点出发到达左树到底然后向上回升直到回到根节点输出根节点然后到右树,到达树底,然后回升输出。后序遍历的思路基本一致,只不过是最后输出根节点,因此除了第一个根节点,中序和后序的节点顺序是一样的
http://www.jsqmd.com/news/67607/

相关文章:

  • 2025年真空滚揉机厂家口碑排行:本地用户真实体验分享,市场上专业的滚揉机品牌优质企业盘点及核心优势详细解读
  • 第49天(中等题 数据结构)
  • 谷歌反重力 Google Antigravity 常见问题
  • windows11同时安装mysql8和mysql5.7数据库
  • 2025年午餐肉罐头机优质生产商口碑榜发布,行业内罐头机产品博锐发展迅速,实力雄厚
  • 每日反思(2025年12月8日)
  • JavaEE 和 JavaWeb的关系
  • 倍增
  • pwn入门记录
  • 2025-12-9
  • Maven 下载 Spigot 依赖失败问题排查:Could not find artifact org.spigotmc:spigot-api…
  • 12.8每日总结
  • 2025/12/08 分享
  • frp
  • 深刻理解HTTP和RPC的区别
  • linux 中 socket 文件是什么?和 socket 编程有什么关系?和 TCP/IP 协议栈又有什么关系?
  • 智能座舱的下一站:从“车内大屏”到“全域协同” - 智慧园区
  • 硬件电子知识(基础篇)
  • stable diffusion
  • 每日的小开心
  • 揭秘业务逻辑滥用:API安全中“利用游戏规则”的攻击手法
  • 放弃原容器建立新容器,保存留数据卷且映射
  • CommonUI-学习记录
  • 银行反欺诈day1
  • Hikvision 考勤机数据提取(3)
  • 2025年数控折弯机模具选购参考
  • Hikvision 考勤机数据提取(3)
  • 12306爬取基本车次信息(需下载chromedriver)
  • 微信小程序渗透测试
  • 大数据数仓设计:分层架构与维度建模 - Binge