【C++】满二叉树问题
/* 给出一棵满二叉树的先序遍历,有两种节点:字母节点(A-Z,无重复)和空节点(#)。要求这个树的中序遍历。输出中序遍历时不需要输出#。 满二叉树的层数n满足1<=n<=5。Sample Input: ABC#D#ESample Output: CBADE */ #include<cstdio> #include<cmath> #include<cstring> #include<iostream> using namespace std; const int M=1024; char data[M]; int layer;struct node {char data;struct node *l;struct node *r; };void build(node * & t,int l) {if(l>layer)return ;int i=0;while(data[i]=='\0')i++;char tc=data[i];//cout<<i<<endl<<tc<<endl; data[i]='\0';if(tc=='#'){t=NULL;return ;}t=new node();t->data=tc;build(t->l,l+1);build(t->r,l+1); }void display(node *t) {if(t==NULL)return ;display(t->l);printf("%c",t->data);display(t->r); }int main() {/*printf("%d\n",(int)(log(8)/log(2)));printf("%f\n",(log(7)/log(2)));*/memset(data,'\0',sizeof(data));while(scanf("%s",&data)){//printf("%s\n",data);int n=strlen(data)+1;/*if(log(n)/log(2)>(int)(log(n)/log(2)))layer=(int)(log(n)/log(2))+1;else*/layer=(int)(log(n)/log(2));//printf("%d\n",layer);node *tree;build(tree,1);display(tree);}return 0; }
tz@HZAU
2019/3/13
转载于:https://www.cnblogs.com/acm-icpcer/p/10525989.html
【C++】满二叉树问题相关推荐
- 力扣——所有可能的满二叉树
满二叉树是一类二叉树,其中每个结点恰好有 0 或 2 个子结点. 返回包含 N 个结点的所有可能满二叉树的列表. 答案的每个元素都是一个可能树的根结点. 答案中每个树的每个结点都必须有 node.va ...
- E2. Rubik‘s Cube Coloring (hard version) dp,满二叉树(2300)
题意 : 其他条件和上题相同 这里已知n个点,给定每个点的编号和颜色 求这个树的合法染色方案,取模1e9 + 7 思路 : 首先预处理d[c][k]d[c][k]d[c][k]表示根结点颜色为c,深度 ...
- E1. Rubik‘s Cube Coloring (easy version) 贪心,满二叉树(1300)
题意 : 给定一个层数为k的满二叉树,结点编号为标准的层序遍历的编号 魔方有六个面,如图,每个面一个颜色 树上的结点的颜色也是这六个颜色之一,但是两个相邻结点的颜色必须是 魔方中,颜色相邻的两种颜色 ...
- step3 . day6数据结构之非线性表 满二叉树和不完全二叉树
二叉树和链表相似,只是后节点变成了左右节点,重要的是递归思想的理解和返回时候的层级结构 1.满二叉树的穿件及前中后序遍历 #include <stdio.h> #include <s ...
- UVa712 S-Trees满二叉树
题目意思就是给你一个满二叉树,然后输入命令查询,0是向左,1是向右.比较简单,直接上代码. #include<iostream> #include <string> #incl ...
- 数据结构之判断一棵树是不是满二叉树
1 满二叉树 除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树.一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树.也就是说,如果一个二叉树的层数为K,且结点总数 ...
- 树-二叉树、满二叉树和完全二叉树
树-二叉树.满二叉树和完全二叉树 二叉树的定义: (1)当n=0时,为空树: (2)当n>0时,是由一个根结点和称为根结点的左.右子树构成,并且两颗子树互不相交. 满二叉树: 对于一棵二叉树,如 ...
- LeetCode 894. 所有可能的满二叉树(递归)
1. 题目 满二叉树是一类二叉树,其中每个结点恰好有 0 或 2 个子结点. 返回包含 N (1 <= N <= 20)个结点的所有可能满二叉树的列表. 答案的每个元素都是一个可能树的根结 ...
- 满二叉树及完全二叉树的相关性质证明
高为h的满二叉树的结点数为:2h−12^h-12h−1 各层结点数为20,21,...,2h−12^0,2^1,...,2^{h-1}20,21,...,2h−1 根据等比序列求和公式,可得到总结点数 ...
最新文章
- 基于新型忆阻器的存内计算原理、研究和挑战
- AI自动评审论文,CMU这个工具可行吗?
- Chapter2 消息总线 ConfigClient配置自动刷新
- kdj超卖_kdj超买超卖是什么意思?kdj指标里说的“超买区,超卖区”什么意思?...
- continue和pass測试
- 如何通过 反射 调用某个对象的私有方法?
- 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用Application Part动态加载控制器和视图...
- 基于 HanLP 的 ES 中文分词插件
- 数据库史上最大投资!Neo4j获3.25亿美元F轮融资
- 老项目Xcode5.1编译器错误
- 关于nginx不能随服务器启动而正常启动的修复脚本
- 极化码:信道极化原理(一)——两信道极化定理
- fps透视基础-d3d绘制-绘制文字-绘制方框-绘制连线
- 造移动厕所的,转做核酸采样亭。火了
- 诊断2018微商:从乱象到赋能,世界微商大会发明的新玩法为您指路
- 电脑数据丢失如何恢复呢?
- cuda必须装在c盘吗_软件安装到C盘会影响计算机运行速度吗?一个问题引发的思考...
- 通信协议整理之 SPI 通信
- 了解前端工程化之组件化——Vue组件
- 阿布扎比全球市场推出加密货币监管框架
热门文章
- 2017/3/8 函数指针/事件/委托....
- git-svn — 让git和svn协同工作
- iOS 学习之NSPredicate
- 从拟物到简约 ------谈网站设计风格的变革
- tf.train.Saver
- Gtest在vs 2010上的配置
- oracle和mysql数据实时同步_异构数据源的CDC实时同步系统——最终选型实战
- C语言麻将递归,C++数据结构与算法——麻将胡牌算法(二:完全胡牌算法)
- python tab和空格混用_我的 Python 编码规范
- shell获取当前执行脚本的路径