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

怀化组织部网站南京市建设工程造价信息网

怀化组织部网站,南京市建设工程造价信息网,建设网站需要租用服务器,wordpress写文章页面无法显示题目描述 我们可以把由 “0” 和 “1” 组成的字符串分为三类:全 “0” 串称为 B 串,全 “1” 串称为 I 串,既含 “0” 又含 “1” 的串则称为 F 串。 FBI 树是一种二叉树,它的结点类型也包括 F 结点,B 结点和 I 结点三…
题目描述

 我们可以把由 “0” 和 “1” 组成的字符串分为三类:全 “0” 串称为 B 串,全 “1” 串称为 I 串,既含 “0” 又含 “1” 的串则称为 F 串。
FBI 树是一种二叉树,它的结点类型也包括 F 结点,B 结点和 I 结点三种。由一个长度为 2N 的 “01” 串 S 可以构造出一棵 FBI 树 T,递归的构造方法如下:

  1. T 的根结点为 R,其类型与串 S 的类型相同;
  2. 若串 S 的长度大于 1,将串 S 从中间分开,分为等长的左右子串 S1 和 S2;由左子串 S1 构造 R 的左子树 T1,由右子串 S2 构造 R 的右子树 T2。

现在给定一个长度为 2N 的 “01” 串,请用上述构造方法构造出一棵 FBI 树,并输出它的后序遍历序列。

对于 40% 的数据,N≤2;

对于全部的数据,N≤10。

输入

第一行是一个整数 N(0≤N≤10),

第二行是一个长度为 2N 的 01 串。

输出

一个字符串,即 FBI 树的后序遍历序列。 

样例输入输出

输入:               输出:

3                        IBFBBBFIBFIIIFF
10001011

方法一:

 构建二叉树,这样比较直观。

STEP 1:构建结点池,使用指针p来跟踪下一个可用节点

STEP 2:建树,

        1.首先判断是否为叶子节点,字符1为"I",0为'B'

        2.构建左右子树,并确定节点类型:左右都是B->B,都是I->I,其他F

STEP 3:后序遍历函数,背口诀:先左后右最后根

STEP 4:输入N(在一和二中都不做使用)及01字符串,输入,建FBI树,后序遍历输出,完成。

#include<bits/stdc++.h>
#define N 2505
using namespace std;
struct Node
{char val;Node*left,*right;
}node[N],*p=node;
//根据01串构建fbl 
Node*createTree(string s)
{Node*np=++p;if(s.length()==1){if(s=="1"){np->val='I';}else{np->val='B';}return np;}np->left=createTree(s.substr(0,s.length()/2));np->right=createTree(s.substr(s.length()/2));if(np->left->val=='B'&&np->right->val=='B'){np->val='B';}else if(np->left->val=='I'&&np->right->val=='I'){np->val='I';}else{np->val='F';}return np;
}
//后序遍历以r为根的子树 
void postOrder(Node*r)
{if(r==NULL){return;}postOrder(r->left);postOrder(r->right);cout<<r->val;
}
int main()
{int a;string s;cin>>a>>s;Node*root=createTree(s);postOrder(root);return 0;
}

 

方法二:

 递归,代码短,推荐使用。为了读者朋友有更好的收获,请先把方法一读完,更好理解方法二。

STEP 1:跟方法1一样,长度为1(即叶子节点)直接判断。

STEP 2:把字符串分成左右两部分进行递归,合并所得结果并确定类型,确定类型的方法与方法一一样,只不过改一下类型。

STEP 3:输入,调用。

#include<bits/stdc++.h>
using namespace std;
string FBL(string str)
{if(str.length()==1){if(str=="1"){cout<<"I";return"I";}else{cout<<"B";return "B";}}else{string left=FBL(str.substr(0,str.length()/2)),right=FBL(str.substr(str.length()/2,str.length()/2));string child=left+right;if(child=="II"){cout<<"I";return "I";}else if(child=="BB"){cout<<"B";return "B";}else{cout<<"F";return"F";}}
}   
int main()
{int n;string s;cin>>n>>s;FBL(s);return 0;
}


文章转载自:

http://fRtjUj55.stbfy.cn
http://drSG0OfW.stbfy.cn
http://ip2y39I9.stbfy.cn
http://CLDLOkrQ.stbfy.cn
http://zdo6EvPd.stbfy.cn
http://JSHuea47.stbfy.cn
http://PovAL1AR.stbfy.cn
http://eHN3mPDY.stbfy.cn
http://eyWXI2HR.stbfy.cn
http://XJBbh3oA.stbfy.cn
http://pzcqs1um.stbfy.cn
http://OEFkrdPk.stbfy.cn
http://w0Pzc8fL.stbfy.cn
http://xT8kYhSU.stbfy.cn
http://iPhu9l7B.stbfy.cn
http://4cG8Rqal.stbfy.cn
http://n14tURwb.stbfy.cn
http://XAYQMpdJ.stbfy.cn
http://r4apzik5.stbfy.cn
http://yPOvhGQH.stbfy.cn
http://DK0Y0wjb.stbfy.cn
http://K0jxogli.stbfy.cn
http://dmgnbmsa.stbfy.cn
http://rBjCORwp.stbfy.cn
http://glytMNp7.stbfy.cn
http://AeHzX5u4.stbfy.cn
http://sIk8CvIA.stbfy.cn
http://4G2rIsMc.stbfy.cn
http://jzt1zFfk.stbfy.cn
http://LK9clgJg.stbfy.cn
http://www.dtcms.com/wzjs/731118.html

相关文章:

  • 北京网站开发网站建设浩森宇特wordpress5.0文章编辑器
  • cms网站管理系统制作网站建设与域名建设
  • owasp+网站开发青柠海报设计网站
  • 金融软件网站建设公司排名wordpress级简主题
  • 网站跳转至手机端如何做做直发网站
  • 网站建设策划报价单沈阳自主建站模板
  • 网站空间商排名罗庄网站建设
  • 如何做招生网站深圳市城市建设管理局
  • 泰安网站建设个人工作室织梦网站必须下载
  • 重庆网站建设定制谷歌seo关键词优化
  • 长春人才网招聘余姚网站seo运营
  • 网站建设中数据字典招标网平台
  • 多域名指向同一网站内网网站建设改版方案
  • ppt模板下载免费素材网站注册微信
  • 安徽省建设厅执业资格注册中心网站网络营销推广公司网站有哪些
  • 二维码制作app怎么关闭seo查询
  • 建设家居网站站酷网站建设
  • win7记事本做网站网页设计作品展
  • 网站建设公司怎么宣传国内软件开发
  • 如何利用网站做产品推广网页设计与制作项目教程陈义文
  • 手机网站建设服务器长沙app网站开发
  • 百度网址大全网站网站制作 常见问题
  • 苏州网站建设网站网站设计中的div是什么
  • 2018年主流网站开发语言电子商务专升本可以报什么专业
  • 江苏有哪些做网站建设的公司企业网站建设与维护
  • 高中信息技术网站设计规划晋江住房和城乡建设局网站
  • 建网站主要工具用了采集站域名做网站
  • 有空间与域名 怎么做网站网站建设中网页代码
  • 专做专业课视频的网站网站布局策划的流程图
  • 贵州国龙翔建设有限公司网站男通网站哪个好用