Pro.ID1329 Title一般的树 Title链接http://10.20.2.8/oj/exercise/problem?problem_id=1329 AC66 Submit273 Ratio24.18% 时间&空间限制描述对于一般的树(主要指非二叉树),可以转换为“孩子-兄弟链表”二叉树来处理。 假设以二元组(F,C)的形式输入树的各条边,请转换为“孩子-兄弟链表”方式存储该树。 对于一般的树,其子树是没有严格的次序之分的,因此,为了确保所得二叉树的唯一性,本题约定:按输入的先后顺序规定“第一棵子树”,“第二棵子树”... 以此类推。从而,“第一棵子树”将成为转换所得的左子树。 输入输入的第一行是一个整数p,表示有p-1条边,p ≥ 1 。接下来是p行,每行两个非负整数 (i, j) ,表示该树的节点的编号。 i表示父节点的编号,j表示子节点的编号。i=-1时,表示j没有父节点。 输出Description 对于一般的树(主要指非二叉树),可以转换为“孩子-兄弟链表”二叉树来处理。 假设以二元组(F,C)的形式输入树的各条边,请转换为“孩子-兄弟链表”方式存储该树。 对于一般的树,其子树是没有严格的次序之分的,因此,为了确保所得二叉树的唯一性,本题约定:按输入的先后顺序规定“第一棵子树”,“第二棵子树”... 以此类推。从而,“第一棵子树”将成为转换所得的左子树。 Input 输入的第一行是一个整数p,表示有p-1条边,p ≥ 1 。接下来是p行,每行两个非负整数 (i, j) ,表示该树的节点的编号。 i表示父节点的编号,j表示子节点的编号。i=-1时,表示j没有父节点。 Output 第一行输出该树原本的高度,以及该树的节点个数。 接下来每一行输出该树一条从根到叶子的路径。 从左到右输出各条路径。 Sample Input 7 Sample Output 4 7 Hint 给出相关的伪代码如下: // 创建“孩子-兄弟链表”方式存储的树 scanf( &p ); EnQueue( Q, p ); // 指针入队列 if ( fa == -1 ) // 所建为根结点
Author 样例输入7 样例输出4 7 提示给出相关的伪代码如下: // 创建“孩子-兄弟链表”方式存储的树 scanf( &p ); EnQueue( Q, p ); // 指针入队列 if ( fa == -1 ) // 所建为根结点
|