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

宝鸡市建设工程交易中心网站谷歌浏览器 安卓下载

宝鸡市建设工程交易中心网站,谷歌浏览器 安卓下载,上海网站开发学校有哪些,网站建设完毕后怎么加后台作者:指针不指南吗 专栏:Acwing 蓝桥集训每日一题 🐾或许会很慢,但是不可以停下来🐾 文章目录1.树的遍历2.递归求阶乘3.求斐波那契数列1.树的遍历 一个二叉树,树中每个节点的权值互不相同。 现在给出它的后…

作者:指针不指南吗
专栏:Acwing 蓝桥集训每日一题

🐾或许会很慢,但是不可以停下来🐾

文章目录

  • 1.树的遍历
  • 2.递归求阶乘
  • 3.求斐波那契数列

1.树的遍历

一个二叉树,树中每个节点的权值互不相同。

现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。

输入格式

第一行包含整数 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. 知识点
  • 层序遍历:从上往下,从左往右一层一层遍历;

  • 中序遍历:先遍历左节点,再遍历根节点,最后遍历右节点;

  • 前序遍历:先遍历根节点,再遍历左节点,最后遍历右节点;

  • 后序遍历: 先遍历左节点,再遍历右节点,最后遍历根节点;

  1. 推导树的原型过程

在这里插入图片描述

​ (1) 首先根据后序遍历的最后一个数,来确定根节点,在中序遍历中找到相同的数即根节点;

​ (2) 由根节点在中序遍历中的位置,我们可以推出来,左子树长度,右子树长度,对应的在后序遍历中找到;

​ (3) 再根据后序遍历中左子树的最后一个,即左子树的根节点,…,递归

  • 最后需要层序遍历:

    我们可以先开一个vector,第一层放在 vector[ 0 ] 里面,第二层放在vector[1]里面…

  1. 代码实现

    #include<bits/stdc++.h>
    using namespace std;const int N=35;
    int a[N],b[N],p[N];  
    int n;vector<int> level[N]; //每一层用一个vector来存数值,因为我们要层序遍历输出;void build(int al,int ar,int bl,int br,int d) //d表示树的层数;
    {if(al>ar) return ;   // 当al>ar时,说明,已经递归到最后一个子树;int val=a[ar];  //每个子树的根节点就是后续遍历的最后一个数字,用val存下来;level[d].push_back(val);  //把每个根节点都存在 对应每一层的数组中去,用于层序遍历输出;int k=p[val];  //k来表示根节点在中序遍历中的位置;build(al,k-1-bl+al ,bl,k-1,d+1);  //递归左子树,下一层d+1;build(k-bl+al,ar-1,k+1,br,d+1);   //递归右子树
    }int main()
    {cin>>n;for(int i=0;i<n;i++) cin>>a[i];  //a表示后序遍历;for(int i=0;i<n;i++) cin>>b[i];  //b表示中序遍历;for(int i=0;i<n;i++) p[b[i]]=i;  //因为要确定中序遍历中左右子序的位置,所以用p来存中序遍历中每个数字的位置;build(0,n-1,0,n-1,0);for(int i=0;i<n;i++)   //把每个level里面的数据输出出来for(int x:level[i])cout<<x<<' ';return 0;
    }
    

    补充

    build的函数参数的表示如下图:

    后序遍历中左子树的ar 的计算,列个方程即可,如下图:

2.递归求阶乘

请使用递归的方式求 n 的阶乘。

输入格式

共一行,包含一个整数 n。

输出格式

共一行,包含一个整数,表示 n 的阶乘的值。

数据范围

1≤n≤10

输入样例:

3

输出样例:

6
  • 代码实现

    #include<bits/stdc++.h>
    using namespace std;int fac(int n)
    {if(n==1) return 1;else return fac(n-1)*n;
    }int main()
    {int n;cin>>n;int k=fac(n);cout<<k;return 0;} 
    

3.求斐波那契数列

请使用递归的方式求斐波那契数列的第 n 项,下标从1开始。

斐波那契数列:1,1,2,3,5…这个数列从第 3 项开始,每一项都等于前两项之和

输入格式

共一行,包含整数 n。

输出格式

共一行,包含一个整数,表示斐波那契数列的第 n� 项。

数据范围

1≤n≤30

输入样例:

4

输出样例:

3
  • 代码实现

    #include<bits/stdc++.h>
    using namespace std;int fun(int n)
    {if(n<=2) return 1;else return fun(n-1)+fun(n-2);
    }int main()
    {int n;cin>>n;cout<<fun(n);return 0;
    }
    

虽然跟着y总学习,但是简单题也要回顾
Alt

http://www.qdjiajiao.com/news/12471.html

相关文章:

  • iis7 多个网站 80端口做网站好的网站建设公司
  • qq空间网站是多少营业推广的形式包括
  • 做网站西安网站推广平台排行
  • 设计网站私单价格google搜索引擎优化
  • 哪个网站可以做经济模拟题无锡seo公司
  • 关于网站建设的新闻河南网站建设哪里好
  • 从零开始自己做外贸网站和海外网络营销哈尔滨百度推广联系人
  • 腾讯云如何建设网站六盘水seo
  • wordpress 好用的插件推荐百度seo排名优化公司哪家强
  • 网站规划和建设b站24小时自助下单平台网站
  • 网站 空间苏州seo优化公司
  • b2b能给网站做优化吗外链购买平台
  • 有没有一些帮做名片的网站如何做好网络营销管理
  • 网站后台 生成所有页面西安网络公司
  • 手机网站seo网址查询站长工具
  • 发票项目网站建设费五种网络营销推广方法
  • 青岛多区发布最新通告下列关于seo优化说法不正确的是
  • 12345浏览器网址大全seo优化专家
  • 网站建设福州百度推广培训
  • ps做游戏网站win10优化大师是官方的吗
  • 公司手机网站制作腾讯云建站
  • 做网站设计图用什么软件nba最新消息新闻报道
  • 建设网站专业公司哪家好seo新方法
  • 做网站基本费用大概需要多少2023年8月份新冠
  • 春节html网页设计与制作代码海淀seo搜索优化多少钱
  • java做的网站怎么转app海淀区seo搜索优化
  • 余姚做网站设计的公司计算机培训班有用吗
  • 安徽做网站找谁网站软文推广网站
  • 可靠的镇江网站建设南宁网络推广平台
  • 长寿网站制作成都百度推广电话