由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - tree data conversion
相关主题
一个读用户输入的小问题请问一个exception题目
A helloworld OpenMP question?Use Visual .NET for C++ programming
C的argc问题三个C syntax 弱问题
请教一道题 (转载)奇怪的问题:关于一个简单的malloc()小程序 (转载)
问个简单的c程序这个C++程序为什么不能运行
求助 怎么编辑 多个 .c files(比如a.c, b.c) 和一个.h file(ab (转载)a question on C++ string
标 题: 发包子 echo 求助定义的struct数组很大时,为什么会出现奇怪的大数字?
[转载] 简单的题都不敢做了. char ** pt1和 char * pt2[] 的区别在哪?
相关话题的讨论汇总
话题: int话题: output话题: input话题: branch话题: max
进入Programming版参与讨论
1 (共1页)
i***j
发帖数: 104
1
现有以下数列,是depth based.第一列是数列次序,第二列是指某点有几个分叉。请看
以下图片。
问题是如何将此数列装换成右边那种形式。有没有高手能指点一下,不知道怎么用写(
perl).先谢
谢了。
1 1
2 1
3 2
4 2
5 2
6 0
7 0
8 2
9 0
10 0
11 0
X****r
发帖数: 3557
2
右边第一行应该是1->2,不是1->1吧。
我不懂perl,不过这个程序实在简单,用C写一个也就几行:
int expand(int input[], int output[][2], int start) {
int branch, end = start + 1;
for (branch = 0; branch < input[start]; ++branch) {
output[start][branch] = end;
end = expand(input, output, end);
}
return end;
}
验证程序:
#include
#include
#define MAX 100
int main(int argc, char *argv[]) {
int input[MAX], output[MAX][2] = {0};
int i;
for (i = 1; i < argc; ++i) {
input[i] = atoi(argv[i]);
}
printf("Total = %d\n", expand(input, output, 1) - 1);
for (i = 1; i < argc; ++i) {
printf("%d: %d %d\n", i, output[i][0], output[i][1]);
}
return 0;
}
补充:如果不是二叉树把2换成最大分叉数即可。

【在 i***j 的大作中提到】
: 现有以下数列,是depth based.第一列是数列次序,第二列是指某点有几个分叉。请看
: 以下图片。
: 问题是如何将此数列装换成右边那种形式。有没有高手能指点一下,不知道怎么用写(
: perl).先谢
: 谢了。
: 1 1
: 2 1
: 3 2
: 4 2
: 5 2

1 (共1页)
进入Programming版参与讨论
相关主题
char ** pt1和 char * pt2[] 的区别在哪?问个简单的c程序
int i:1求助 怎么编辑 多个 .c files(比如a.c, b.c) 和一个.h file(ab (转载)
A aimple C++ question标 题: 发包子 echo 求助
What is wrong with the code?[转载] 简单的题都不敢做了.
一个读用户输入的小问题请问一个exception题目
A helloworld OpenMP question?Use Visual .NET for C++ programming
C的argc问题三个C syntax 弱问题
请教一道题 (转载)奇怪的问题:关于一个简单的malloc()小程序 (转载)
相关话题的讨论汇总
话题: int话题: output话题: input话题: branch话题: max