| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 833 人关注过本帖
标题:[求助][讨论]关于“下一棵树”的求法 ( 二叉树 )~~ 脑力风暴~~
只看楼主 加入收藏
vvvv54
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-4-27
收藏
 问题点数:0 回复次数:1 
[求助][讨论]关于“下一棵树”的求法 ( 二叉树 )~~ 脑力风暴~~

Farmer John 的农场上有N(1<=N<=1000)棵树。在上过计算机课后,Betsy发现所有的树实际上都是严格的二叉树。二叉树的每个非叶结点都恰好有两个子结点。Betsy给每个结点一个数表示以这个结点为根的子树的叶结点数。
然后,Betsy按照先序遍历的结果把和结点相关的数列作为它的特征序列。但是,她只列出了与根结点和所有的左子结点相关的数。例如对下面的树:
*7
/ \
/ \
/ \
*4 3
/ \ / \
*1 3 *1 2
/ \ / \
*2 1 *1 1
/ \
*1 1
用*表示的是Betsy列出的结点。这棵树的特征序列为:(7 4 1 2 1 1 1)。
在用这种方法表示完所有的树后,Betsy发现:
&#8226;所有的树有同样多的叶结点,
&#8226;所有的树有不同的特征序列,
&#8226;所有可能的严格的二叉树都在农场上。
所以,作为一个有创造力的奶牛,她决定把这些特征序列排序。给出一棵树的特征序列,求出紧接着的一个序列。

输入格式
第1行:N,特征序列的长度。
第2行:N个用空格隔开的数,表示一棵树的特征序列。

输出格式
单独的一行,表示按字典排序后所给序列的后一个序列。如果所给序列是最后一个序列,则输出0。记住:输入和输出的序列代表的树要有相同的叶结点数。

样例输入(nextree.in)
5
5 3 2 1 1

样例输出(nextree.out)
5 4 1 1 1


[此贴子已经被作者于2007-4-28 11:22:40编辑过]

搜索更多相关主题的帖子: 二叉树 下一棵树 结点 脑力 Betsy 
2007-04-27 23:34
vvvv54
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-4-27
收藏
得分:0 
1.数据的 个数等于 叶子数(redim 变量数组)
2.第1个数 等于 叶子数
3.后面的数小于前面的数(如果前面不等于1)
4.后面的数小于属于他的父跳跃点-跳跃点
(跳跃点:如:10 9(T1) 65(T2) 21 (M2)21 (M1)21 是10片叶子的一个特征,(M2)的跳跃点是T2) 5-2=3 所以后面的都小于3 M1的跳跃点是T1 后面的小于 9-6,我说的跳跃是变化大于1的地方)
5.下一个特征序列是 从M1 到 M(max) 不是最大的加1,特征数达到最大的提高他的节点父数,后面用1补全
如上一个的下一个是 10 9 65 311 11
再下一个是:10 9 65 321 11
10 9 6541 11 11
10 9 6541 21 11
10 9 6542 11 11
10 9 65431 11 1
10 9 654321 11
直到10 987654321
2007-04-28 10:56
快速回复:[求助][讨论]关于“下一棵树”的求法 ( 二叉树 )~~ 脑力风暴~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028421 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved