树的转换
成绩 | 100 | 开启时间 | 2020年06月17日 星期三 16:10 |
折扣 | 0.8 | 折扣时间 | 2020年06月17日 星期三 16:10 |
允许迟交 | 是 | 关闭时间 | 2020年06月17日 星期三 16:10 |
输入文件 | Grafting.in | 输出文件 | Grafting.out |
【题目描述】树的转换(Grafting)POJ 3437
我们都知道用“左儿子右兄弟”的方法可以将一棵一般的树转换为二叉树,如图4.51所示。
图4.51
现在请你将一些一般的树用这种方法转换为二叉树,并输出转换前和转换后树的高度。
【输入格式】
输入包括多行,最后一行以一个#表示结束。
每行是一个由“u”和“d”组成的字符串,表示一棵树的深度优先搜索信息。比如,dudduduudu可以用来表示上文中的左树,因为搜索过程为:0 Down to 1 Up to 0 Down to 2 Down to 4 Up to 2 Down to 5 Up to 2 Up to 0 Down to 3 Up to 0。
你可以认为每棵树的结点数至少为2,并且不超过10 000。
【输出格式】
对于每棵树,按如下格式输出转换前和转换后树的高度:
Tree t: h1 => h2
其中t是树的编号(从1开始),h1是转换前树的高度,h2是转换后树的高度。
【输入样例】
dudduduudu
ddddduuuuu
dddduduuuu
dddduuduuu
#
【输出样例】
Tree 1: 2 => 4
Tree 2: 5 => 5
Tree 3: 4 => 5
Tree 4: 4 => 4