BUAA 2014级数据结构第五次上机 二叉树之数组转换广义表
按题意建立好二叉树,再按照先序遍历输出结果。
- #include<cstdio>
- #include<vector>
- #include<queue>
- #include<string.h>
- #include<algorithm>
- using namespace std;
- struct node
- {
- int left, right, date;
- }node[];
- int a[], flag[];
- void dfs(int father)
- {
- printf("%d", node[father].date);
- if (node[father].left != - || node[father].right != -) printf("(");
- if (node[father].left != - && node[father].right == -)
- {
- dfs(node[father].left);
- printf(")");
- }
- else if (node[father].left == - && node[father].right != -)
- {
- printf(",");
- dfs(node[father].right);
- printf(")");
- }
- else if (node[father].left != - && node[father].right != -)
- {
- dfs(node[father].left);
- printf(",");
- dfs(node[father].right);
- printf(")");
- }
- }
- int main()
- {
- int n, i;
- while (~scanf("%d", &n))
- {
- int numm = ;
- for (i = ; i <= ; i++)
- {
- node[i].date = -;
- node[i].left = -;
- node[i].right = -;
- }
- memset(flag, , sizeof(flag));
- for (i = ; i <= n; i++) scanf("%d", &a[i]);
- int father = , jishu = ;
- node[numm].date = a[]; numm++;
- for (i = ; i <= n; i++)
- {
- if (jishu == )
- {
- jishu++;
- if (a[i] != -)
- {
- node[father].left = numm;
- node[numm].date = a[i];
- numm++;
- }
- }
- else if (jishu == )
- {
- if (a[i] != -)
- {
- node[father].right = numm;
- node[numm].date = a[i];
- numm++;
- }
- jishu = ;
- father++;
- }
- }
- dfs();
- printf("\n");
- }
- return ;
- }
BUAA 2014级数据结构第五次上机 二叉树之数组转换广义表的更多相关文章
- 数据结构(C语言第2版)-----数组,广义表,树,图
任何一个算法的设计取决于选定的数据结构,而算法的实现依赖于采用的存储结构. 之前线性表的数据元素都是非结构的原子类型,元素的值是不可再分的.下面学习的这两个线性表是很特殊的,其中数据元素本身也可能是一 ...
- 2016级算法第五次上机-A.Beihang Collegiate Pronunciation Contest 2017
1065 Beihang Collegiate Pronunciation Contest 2017 思路 在字符串中不断做匹配 找到一个匹配就输出 时间复杂度\(O(n)\) ps.模式串是定长的, ...
- 2016级算法第五次上机-G.ModricWang的撒币游戏
1062 ModricWang的撒币游戏 思路 此题为2017年ACM-ICPC亚洲区域赛乌鲁木齐赛区的A题,现场94个队中有38个队做出此题.在这里作为满分以外的题,是为了让大家看一下外面一些题的风 ...
- 2016级算法第五次上机-F.ModricWang的水系法术
1066 ModricWang的水系法术 思路 比较典型的最大流问题,需要注意的是,题目已经暗示(明示)了这里的边是双向的,在建图的时候需要加上反向边的容量值. 解决最大流问题的基本思路就是不断在残量 ...
- 2016级算法第五次上机-E.AlvinZH的学霸养成记IV
1039 AlvinZH的学霸养成记IV 思路 难题,最大二分图匹配. 难点在于如何转化问题,n对n,一个只能攻击一个,判断是否存在一种攻击方案我方不死团灭对方.可以想到把所有随从看作点,对于可攻击的 ...
- 2016级算法第五次上机-D.AlvinZH的学霸养成记III
850 AlvinZH的学霸养成记III 思路 难题.概率DP. 第一种思考方式:直接DP dp[i]:从已经有i个学霸到所有人变成学霸的期望. 那么答案为dp[1],需要从后往前逆推.对于某一天,有 ...
- 2016级算法第五次上机-C.Bamboo和"Coco"
1064 Bamboo和"Coco" 分析题意 每个亡灵至少一个花瓣,相邻的亡灵中思念值高的要获得的花瓣高(思念值相等是不需要花瓣一样多的).主要考贪心思路,为了使得花瓣总量最少, ...
- 2016级算法第五次上机-B.Bamboo&APTX4844魔发药水
Bamboo&APTX4844魔发药水 题意 "于是,Bamboo耐着性子,看巫师从袖子里掏出 M 瓶时光泉水和 K 粒绿色能量.每瓶时光泉水重量为 c ,生发效果为 l:每粒绿色能 ...
- 题解:2018级算法第五次上机 C5-图2
题目描述: 样例: 实现解释: 所有结点对最短路径的板子题 知识点: 寻找所有结点对最短路径,动态规划 坑点: 无坑,注意建边即可 使用的算法为floyd算法 按照程序顺序解释如下: 首先建图,以邻接 ...
随机推荐
- GMap学习笔记
GMap学习笔记 1.GMap体系详解 What is the map control (GMapControl)? This is the control which renders the map ...
- PHP多维数组元素操作类
我的框架里面一个多维数组元素操作类,主要用于读取数组中配置数据,可以通过字符串节点的方式:a.b.c 来获取和设置元素,以及多维数组的覆盖,有需求的可以参考下吧! <?php /** * Cre ...
- hdu1043
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#inclu ...
- angularjs的懒加载
1.angularJS懒加载依赖模块 //设置 .config [ '$ocLazyLoadProvider' ($ocLazyLoadProvider) -> # We configure o ...
- JS 用角度换东南西北
最近因为业务,正好需要用设备回传的角度值转成用户读得懂的文字形式 function toDirStr(num){ var num=parseInt(num) var N='北'; var E='东'; ...
- python学习-基础语法
字符编码 1.python 2.x 默认是ASCII 编码 不支持中文,所以在代码有中文的时候 需要在文件最上一行加上#coding=utf-8.python 3.x则没有该问题. 变量命名规则 1. ...
- WPF和Winform的一些界面控件
DevExpressTelerikMahApps.MetroModern UI for WPFModernWPFExtended WPF Toolkit™ Community EditionModer ...
- MVC-Area
ASP.NET MVC中,是依靠某些文件夹以及类的固定命名规则去组织model实体层,views视图层和控制层的.如果是大规模的应用程序,经常会由不同功能的模块组成,而每个功能模块都由MVC中的三层所 ...
- 问题记录1:The VMware Authorization Service is not running.
问题 VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the pr ...
- ios开发之滑动长图截全屏应用
最近做项目遇到要求截取图片长度超出手机屏幕,即可滑动的长图截屏,这里简单说一下解决思路,下面附带Demo下载地址. ,当我们要截全屏时,将滑动视图的frame以及偏移量记录下来,然后将滑动视图偏移量设 ...