传送门

Description

求一棵二叉树的前序遍历,中序遍历和后序遍历

Input

第一行一个整数n,表示这棵树的节点个数。

接下来n行每行2个整数L和R。第i行的两个整数Li和Ri代表编号为i的节点的左儿子编号和右儿子编号。

Output

输出一共三行,分别为前序遍历,中序遍历和后序遍历。编号之间用空格隔开。

Sample Input

5

2 3

4 5

0 0

0 0

0 0

Sample Output

1 2 4 5 3

4 2 5 1 3

4 5 2 3 1

思路

 
#include<bits/stdc++.h>
using namespace std;
const int maxn = 20;
int lson[maxn] = {0},rson[maxn] = {0};

void preorder(int x)
{
	if (x != 1)	printf(" ");
	printf("%d",x);
	if (lson[x])	preorder(lson[x]);
	if (rson[x])	preorder(rson[x]);
}

void inorder(int x)
{
	if (x)
	{
		inorder(lson[x]);
		printf("%d ",x);
		inorder(rson[x]);
	}
}

void postorder(int x)
{
	if (lson[x])	postorder(lson[x]);
	if (rson[x])	postorder(rson[x]);
	printf("%d ",x);
}

int main()
{
	int N;
	scanf("%d",&N);
	for (int i = 1;i <= N;i++)	scanf("%d%d",&lson[i],&rson[i]);
	preorder(1);printf("\n");
	inorder(1);printf("\n");
	postorder(1);printf("\n");
	return 0;
}

  

codevs 3143 二叉树的序遍历的更多相关文章

  1. 3143 二叉树的序遍历codevs

    题目描述 Description 求一棵二叉树的前序遍历,中序遍历和后序遍历 输入描述 Input Description 第一行一个整数n,表示这棵树的节点个数. 接下来n行每行2个整数L和R.第i ...

  2. codevs3143 二叉树的序遍历

    难度等级:白银 3143 二叉树的序遍历 题目描述 Description 求一棵二叉树的前序遍历,中序遍历和后序遍历 输入描述 Input Description 第一行一个整数n,表示这棵树的节点 ...

  3. 二叉树的序遍历x(内含结构体与非结构体版x)

    3143 codevs 二叉树的序遍历 题目描述 Description 求一棵二叉树的前序遍历,中序遍历和后序遍历 输入描述 Input Description 第一行一个整数n,表示这棵树的节点个 ...

  4. 二叉树中序遍历 (C语言实现)

    在计算机科学中,树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构.二叉树是每个节点最多有两个子树的有序树.通常子树被称作“左子树”(left subtre ...

  5. 94 Binary Tree Inorder Traversal(二叉树中序遍历Medium)

    题目意思:二叉树中序遍历,结果存在vector<int>中 解题思路:迭代 迭代实现: /** * Definition for a binary tree node. * struct ...

  6. 144 Binary Tree Preorder Traversal(二叉树先序遍历Medium)

    题目意思:二叉树先序遍历,结果存在vector<int>中 解题思路:1.递归(题目中说用递归做没什么意义,我也就贴贴代码吧) 2.迭代 迭代实现: class Solution { pu ...

  7. 二叉树后序遍历的非递归算法(C语言)

    首先非常感谢‘hicjiajia’的博文:二叉树后序遍历(非递归) 这篇随笔开启我的博客进程,成为万千程序员中的一员,坚持走到更远! 折磨了我一下午的后序遍历中午得到解决,关键在于标记右子树是否被访问 ...

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

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

  9. [leetcode]94. Binary Tree Inorder Traversal二叉树中序遍历

    Given a binary tree, return the inorder traversal of its nodes' values. Example: Input: [1,null,2,3] ...

随机推荐

  1. LeetCode 解题报告索引

    最近在准备找工作的算法题,刷刷LeetCode,以下是我的解题报告索引,每一题几乎都有详细的说明,供各位码农参考.根据我自己做的进度持续更新中......                        ...

  2. 安装包制作工具 SetupFactory使用1 详解

    2014-11-19 Setup Factory 是一个强大的安装程序制作工具.提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序.可建立快捷方式,也可直接在 Windows ...

  3. auto refresh iframe

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...

  4. Gitlab的搭建

    从网上看了一大堆的资料,最终选定按照github上的文档来搭建,虽然本人英文不好,就这样看着 这个博客弯曲完全是拷贝过来的,只为了做个笔记 原文地址:https://github.com/gitlab ...

  5. Maven_Build_Resources

    功能:主要用于打包资源文件,默认情况下maven只打包src/main/resource下的资源,通过 1.设置build_resources 2.使用build-helper-maven-plugi ...

  6. javascript 方法实例

    输出对象的属性名称与值 : boj(o){ for(var p in o){ console.log(p + ":" + o[p] + "\n"); } } 构 ...

  7. js 通过身份证识别生日、年龄、性别

    <script>function IdCard(UUserCard,num){   if(num==1){       //获取出生日期       birth=UUserCard.sub ...

  8. 解决jQuery UI 对话框兼容性问题

    默认情况下使用jQuery UI的对话框,在Chrome浏览器是没问题的,但是在IE里却会显示对话框,用户体验非常不好.改变一下div的属性即可. 原本是这样: <div id="di ...

  9. MySQL必知必会的查询

    前言: 据身边不少朋友反映,SQL长时间不用的话难免会生疏!本文的几个查询示例可以让你5分钟内快速回忆起MySQL中常用的基础查询语法! ------------ 如何用MySQL解决一些常见问题的例 ...

  10. UDP编程中client和server中使用recvfrom和sendto的区别

    client中:      sendto(sfd,buf,strlen(buf),0,(struct sockaddr *)&saddr,len);      recvfrom(sfd,buf ...