树转二叉树

将一棵树转化成二叉树。

输入格式:

输入的信息,第一行一个数n,(n<=1000)是树的结点数,以下n行,第i+1行是第i个结点的信息,第一个整数,是该结点的特征数值,后列出所有孩子结点的特征数值,树根的特征数值规定为1, 其它结点的待征值是不大于30000的正整数。

输出格式:

输出的信息,每行为一个结点的信息,第一个数为该结点的特征数值,后面依次是根,左孩子,右孩子的特征数值,父结点,左孩子,右孩子若缺用0表示,要求结点特征数值排序后,从小到大输出。

样例输入:

6
1 2 5 4
2
5 3 6
4
3
6

样例输出:

1 0 2 0
2 1 0 5
3 5 0 6
4 5 0 0
5 2 3 4
6 3 0 0

数据范围:

n<=1000
结点的待征值是不大于30000的正整数

 
树转二叉树的重点过程:把节点的最左边子树的兄弟全部一次串到该子树上(不会影响子树自身的子树),可以边读边写节省空间。
XJ的数据一如既往的坑,说好了给一棵树的,竟然给了一堆散在外面的节点,所以bool vis[30001]来判断是否读入过该节点。
 #include<cstdio>
 #include<iostream>
 #include<string>
 using namespace std;
 struct node{
     int lch,rch,f;
 }two[];
 ];
 int main()
 {
     int n,w,num,k,ch,count;
     scanf("%d\n",&n);
     string s;
     ;j<=n;j++)
     {
         getline(cin,s);
         s+=' ';
         num=;
         k=;
         ') k++;
         for(k;k<s.length();k++)
         {
             ') break;
             num*=;
             num+=s[k]-';
         }
         ch=;
         w=num;
         count=;
         vis[num]=;
         ;i<s.length();i++)
         {
             ')
             {
                 )
                 {
                     count++;
                     two[num].lch=ch;
                     two[ch].f=num;
                 }
                 else
                 {
                     two[ch].f=w;
                     two[w].rch=ch;
                 }
                 w=ch;
                 ch=;
             }
             else
             {
                 ch*=;
                 ch+=s[i]-';
             }
         }
     }
     ;i<=;i++) if(vis[i]) printf("%d %d %d %d\n",i,two[i].f,two[i].lch,two[i].rch);
     ;
 }

XJOI1559树转二叉树的更多相关文章

  1. Java数据结构之树和二叉树(2)

    从这里始将要继续进行Java数据结构的相关讲解,Are you ready?Let's go~~ Java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来 ...

  2. Java数据结构之树和二叉树

    从这里开始将要进行Java数据结构的相关讲解,Are you ready?Let's go~~ Java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的 ...

  3. lintcode :前序遍历和中序遍历树构造二叉树

    解题 前序遍历和中序遍历树构造二叉树 根据前序遍历和中序遍历树构造二叉树. 样例 给出中序遍历:[1,2,3]和前序遍历:[2,1,3]. 返回如下的树: 2 / \ 1 3 注意 你可以假设树中不存 ...

  4. lintcode: 中序遍历和后序遍历树构造二叉树

    题目 中序遍历和后序遍历树构造二叉树 根据中序遍历和后序遍历树构造二叉树 样例 给出树的中序遍历: [1,2,3] 和后序遍历: [1,3,2] 返回如下的树: 2 /  \ 1    3 注意 你可 ...

  5. 数据结构与算法系列研究五——树、二叉树、三叉树、平衡排序二叉树AVL

    树.二叉树.三叉树.平衡排序二叉树AVL 一.树的定义 树是计算机算法最重要的非线性结构.树中每个数据元素至多有一个直接前驱,但可以有多个直接后继.树是一种以分支关系定义的层次结构.    a.树是n ...

  6. python数据结构之树和二叉树(先序遍历、中序遍历和后序遍历)

    python数据结构之树和二叉树(先序遍历.中序遍历和后序遍历) 树 树是\(n\)(\(n\ge 0\))个结点的有限集.在任意一棵非空树中,有且只有一个根结点. 二叉树是有限个元素的集合,该集合或 ...

  7. 数据结构与算法(C/C++版)【树与二叉树】

    第六章<树与二叉树> 树结构是一种非线性存储结构,存储的是具有"一对多"关系的数据元素的集合. 结点: A.B.C等,结点不仅包含数据元素,而且包含指向子树的分支.例如 ...

  8. K:树、二叉树与森林之间的转换及其相关代码实现

    相关介绍:  二叉树是树的一种特殊形态,在二叉树中一个节点至多有左.右两个子节点,而在树中一个节点可以包含任意数目的子节点,对于森林,其是多棵树所组成的一个整体,树与树之间彼此相互独立,互不干扰,但其 ...

  9. K:树与二叉树

    相关介绍:  树(英语:tree)是一种抽象数据类型(ADT)或是作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合.它是由n(n>0)个有限节点组成的一个具有层次关系的集合.把它 ...

随机推荐

  1. c#生成动态库并加载

    下面这段代码生成dll文件,不能编译运行.点击项目右键,点击生成,这时会在debuge文件中生成相应的配置文件. using System; using System.Collections.Gene ...

  2. gridView 编辑单元格获取单元格焦点位置(位于单元格的焦点位置)

    1.主要代码: private void Form1_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Col ...

  3. .NET Core跨平台:使用.NET Core开发一个初心源商城总括

    1..NET Core基本介绍 a 作为一个.NET的开发者,在以前的开发中,我们开发的项目基本都是部署在windows服务器上,但是在windows服务器上的话某些比较流行的解决访问量的方案基本都是 ...

  4. Alamofire源码解读系列(四)之参数编码(ParameterEncoding)

    本篇讲解参数编码的内容 前言 我们在开发中发的每一个请求都是通过URLRequest来进行封装的,可以通过一个URL生成URLRequest.那么如果我有一个参数字典,这个参数字典又是如何从客户端传递 ...

  5. 循环神经网络(RNN)模型与前向反向传播算法

    在前面我们讲到了DNN,以及DNN的特例CNN的模型和前向反向传播算法,这些算法都是前向反馈的,模型的输出和模型本身没有关联关系.今天我们就讨论另一类输出和模型间有反馈的神经网络:循环神经网络(Rec ...

  6. 【需求工程】KANO模型

    引言 1979年10月东京理工大学教授狩野纪昭(Noriaki Kano)和其同事 Fumio Takahashi发表的论文 <Motivator and Hygiene Factor in Q ...

  7. JS入门(一)

    在学js之前,我们应该先清楚js是什么,js全称JavaScript.是一门基于对象和事件的,有安全性的脚本语言.所谓脚本语言,就是一行一行执行的,就像剧本一样,一句句的往下读.而对象和事件,则是js ...

  8. Json数据解析在Unity3d中的应用

    最近做项目过程中因为Json文件名写错了一个字母Unity报错,找错误找到半夜,当时为了验错,写了一个小Demo,正好借此总结一下Json. 1.什么是Json JSON(JavaScript Obj ...

  9. Java中整形、浮点、字符之间的转换

    如:String s = "123";int num = Integer.parseInt(s);注意:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,会 ...

  10. Servlet中表单的重复提交

    1.用户登录页面: ->设置一个UUID到session中 ->将UUID添加到隐藏域中,提交到服务器 <% //进入页面,设置一个UUID,将UUID添加到session中 Str ...