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

南京城市规划建设展览馆网站重庆企业网站推广价格

南京城市规划建设展览馆网站,重庆企业网站推广价格,05网补充答案,网站开发框架书籍文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴递归一、题目 1、原题链接 1497. 树的遍历 2、题目描述 一个二叉树#xff0c;树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历#xff0c;请你输出它的 … 文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴递归一、题目 1、原题链接 1497. 树的遍历 2、题目描述 一个二叉树树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历请你输出它的 层序遍历。 输入格式 第一行包含整数 N表示二叉树的节点数。 第二行包含 N 个整数表示二叉树的后序遍历。 第三行包含 N 个整数表示二叉树的中序遍历。 输出格式 输出一行 N 个整数表示二叉树的层序遍历。 数据范围 1≤N≤30,官方并未给出各节点权值的取值范围为方便起见在本网站范围取为 1∼N。 输入样例 7 2 3 1 5 7 6 4 1 2 3 4 5 6 7输出样例 4 1 6 3 5 7 2二、解题报告 1、思路分析 思路来源y总讲解视频 y总yyds 预备知识 前序遍历根左右先遍历根结点然后遍历左孩子、右孩子下面类似。中序遍历左根右。后序遍历左右根。层次遍历从根结点开始依次从左往右遍历每层的结点。 1我们可以通过后序遍历的最后一个一个结点来确定整棵树的根结点 2根据根结点的位置我们可以在中序遍历中得知整棵树的左右子树分别包含哪些结点。 3递归地对左右子树进行上述操作直到后序遍历中子树大小为空这样就可以依次将每层的结点找到然后把每层的结点记录下来输出即可。 2、时间复杂度 时间复杂度O(n) 3、代码详解 用vector记录每层结点然后输出 #include iostream #include vector using namespace std; const int N35; int n; int h[N],z[N],p[N]; //h[]存储树的后序遍历z[]存储树的中序遍历p[i]存储值为i的数在中序遍历中的下标 vectorint c[N]; //c[i]存储第i层的层序遍历 void build(int hl,int hr,int zl,int zr,int d){ //传入后序遍历的起点和终点、中序遍历的起点和终点,当前的层数if(hlhr) return ;int valh[hr]; //根结点的值c[d].push_back(val); //将根结点加入第d层的层序遍历中int idxp[val]; //根结点在中序遍历中的下标build(hl,hlidx-1-zl,zl,idx-1,d1); //递归遍历左子树build(hlidx-zl,hr-1,idx1,zr,d1); //递归遍历右子树 } int main(){cinn;for(int i0;in;i){cinh[i];}for(int i0;in;i){cinz[i];}for(int i0;in;i){p[z[i]]i;}build(0,n-1,0,n-1,0);for(int i0;in;i){for(int j0;jc[i].size();j){coutc[i][j] ;}}return 0; }建树然后bfs输出层序遍历 #include iostream #include vector #include queue using namespace std; const int N35; int n; int h[N],z[N],p[N]; //h[]存储树的后序遍历z[]存储树的中序遍历p[i]存储值为i的数在中序遍历中的下标 int l[N],r[N]; //l[]存储每个结点的左孩子r[]存储每个结点的右孩子 //建树返回根结点 int build(int hl,int hr,int zl,int zr,int d){ //传入后序遍历的起点和终点、中序遍历的起点和终点,当前的层数if(hlhr) return 0; //如果子树为空返回0int valh[hr]; //根结点的值int idxp[val]; //根结点在中序遍历中的下标l[val]build(hl,hlidx-1-zl,zl,idx-1,d1); //递归遍历左子树找到左子树的根结点r[val]build(hlidx-zl,hr-1,idx1,zr,d1); //递归遍历右子树找到右子树的根结点return val; } //bfs输出层序遍历 void bfs(){queueint q;q.push(h[n-1]);while(q.size()){int tq.front();q.pop();coutt ;if(l[t]) q.push(l[t]);if(r[t]) q.push(r[t]);} } int main(){cinn;for(int i0;in;i){cinh[i];}for(int i0;in;i){cinz[i];}for(int i0;in;i){p[z[i]]i;}build(0,n-1,0,n-1,0);bfs();return 0; }三、知识风暴 递归 递归是指函数直接或间接调用自己是一种描述问题和解决问题的常用方法。递归有两个基本要素 边界条件即确定递归到何时终止也就是递归出口。递归模式即大问题是如何分解成小问题的也就是递归体。
http://www.dnsts.com.cn/news/49123.html

相关文章:

  • 网站后台管理系统权限做免费嗳暧视频网站
  • 华强北附近网站建设WordPress 4.8.1 增强版
  • 功能型网站wordpress 换语言
  • 网站app客户端制作林州市住房和城乡建设部网站
  • 如何策划手机网站龙岩律师在线咨询
  • 建设网站最好的软件网站设计制作的服务商
  • 戒赌网站怎么做网络培训心得体会
  • 衡水 网站建设百度搜索
  • 微网站自助建设长春网站建设模板
  • 门户网站系统业务流程图自己做的产品在哪个网站上可从卖
  • 淄博的大型网站建设企业网站源码 thinkphp
  • 杭州企业网站设计模板网站用户黏度
  • 九寨沟城乡建设官方网站呼和浩特网站建设哪家好
  • wordpress图床首页无缩略图湖北seo推广
  • 局域网的电脑怎么做网站服务器优秀的html5网站 2016
  • 什么网站可以学习建设工程法律实践设计帮官网
  • 免费发帖的平台有哪些网络优化师
  • 木门行业网站该怎么做网站与平台的区别
  • 怎么用微信官方网站做二维码中铁建设集团有限公司在哪
  • 网站建设策做网站设计的公司叫什么
  • 仪征市企业网站建设公司wordpress 下载失败
  • 十堰网站制作公司偃师网络营销的概念
  • 网站制作合同注意事项专业做灰色关键词排名
  • 上海中高端网站建设温岭营销型网站建设
  • 行知智网站建设wordpress移除编辑器区块
  • 中国建设银行肃宁支行网站河间网站网站建设
  • 帝国cms网站地址桂林森威建筑工程监理有限责任公司
  • 商务网站规划与建设心得多语言网站(如何实现网站的多语言版本 )
  • 郓城如何做网站seo包河网站建设
  • 部门网站建设整改头像制作logo免费生成器在线