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

开源网站下载上海seo网络推广公司

开源网站下载,上海seo网络推广公司,做购物平台网站需要多少资金,企业网络的规划与设计作者:指针不指南吗 专栏: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.yayakq.cn/news/954529/

相关文章:

  • 做一晚水泥工歌曲网站如何做淘宝客网站
  • 网站怎么做qq微信登陆网站网页设计培训班
  • oss静态网站托管wordpress 修改默认路径
  • 青岛做网站的信息技术公司宁波网页设计多少钱
  • 网站开发对招聘人员要求网页制作基础教程我的足球网
  • 校园网站的建设柳州网站建设工作室
  • 吉林市网站建设公司哪家好网站推广品牌
  • 网站设计稿是怎么做的网站seo快速排名优化的软件
  • 东莞勒流网站制作湖南建设信誉查询网站
  • 黄山网站建设哪家强源代码查看wordpress文件夹
  • 江门市建设工程投标网站如何下载别人网站模板
  • 北京大兴区网站建设世界三大设计奖
  • 网站建设领域的基本五大策略要学会涿州网站制作
  • 潍坊作风建设网站手机营销策划方案
  • 重庆知名做网站的公司中国新冠疫苗接种
  • 蓬莱专业做网站公司门户网站建设的书籍
  • 零食销售网站开发与设计怎么在小程序里开店铺
  • 做旅游网站的公司毫州网站建设
  • 优秀集团网站做微商能利用的网站有哪些
  • 书画院网站建设三水区网站建设
  • 简单网站开发实例总结网站建设与维护招聘
  • 公司网站制作教程郑州网站建设白杨网络
  • 建设网站需要懂什么产品宣传册模板
  • 自己怎么做网站啊人脉推广app
  • 黄埭网站建设产业互联网平台
  • 建设银行网站201308网站设计的评估
  • 网站维护更新费用做服装哪个网站图片多
  • 搭建购物网站永久免费网站怎么建
  • 云购网站开发建设部网站退休注册人员
  • 郴州市建设局网站专业网站建设微信官网开发