*题目记录 codevs3143 二叉树的序遍历

#include<stdio.h>

typedef struct node{
int boo;
struct node *chil;
int l;
struct node *chir;
int r;
};
int bl(node *p);
int bj(node *q);
int bk(node *r);

int main(){
struct node k[16];
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
k[i].boo=i;
}
for(int i=1;i<=n;i++){
k[i].boo=i;
int a,b;
scanf("%d %d",&a,&b);
if(a != 0){
k[i].chil=&k[a];
k[i].l=1;
}else{
k[i].l=0;
}
if(b != 0){
k[i].chir=&k[b];
k[i].r=1;
}else{
k[i].r=0;
}
}
//输入数据
bl(&k[1]);
printf("\n");
bj(&k[1]);
printf("\n");
bk(&k[1]);
return 0;
}

int bl(node *p){
printf("%d ",p->boo);
if((p->l) == 1){
bl(&(*p->chil));
}
if((p->r) == 1){
bl(&(*p->chir));
}
}

int bj(node *q){
if((q->l)==1){
bj(&(*q->chil));
}
printf("%d ",q->boo);
if((q->r)==1){
bj(&(*q->chir));
}
}

int bk(node *r){
if((r->l)==1){
bk(&(*r->chil));
}
if((r->r)==1){
bk(&(*r->chir));
}
printf("%d ",r->boo);
}

原文地址:http://blog.51cto.com/13986036/2280971

时间: 2024-11-02 01:17:36

*题目记录 codevs3143 二叉树的序遍历的相关文章

codevs3143 二叉树的序遍历

难度等级:白银 3143 二叉树的序遍历 题目描述 Description 求一棵二叉树的前序遍历,中序遍历和后序遍历 输入描述 Input Description 第一行一个整数n,表示这棵树的节点个数. 接下来n行每行2个整数L和R.第i行的两个整数Li和Ri代表编号为i的节点的左儿子编号和右儿子编号. 输出描述 Output Description 输出一共三行,分别为前序遍历,中序遍历和后序遍历.编号之间用空格隔开. 样例输入 Sample Input 5 2 3 4 5 0 0 0 0

18.2.26 codevs3143 二叉树的序遍历

题目描述 Description 求一棵二叉树的前序遍历,中序遍历和后序遍历 输入描述 Input Description 第一行一个整数n,表示这棵树的节点个数. 接下来n行每行2个整数L和R.第i行的两个整数Li和Ri代表编号为i的节点的左儿子编号和右儿子编号. 输出描述 Output Description 输出一共三行,分别为前序遍历,中序遍历和后序遍历.编号之间用空格隔开. 样例输入 Sample Input 5 2 3 4 5 0 0 0 0 0 0 样例输出 Sample Outp

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

题目意思:二叉树中序遍历,结果存在vector<int>中 解题思路:迭代 迭代实现: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Soluti

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

题目意思:二叉树先序遍历,结果存在vector<int>中 解题思路:1.递归(题目中说用递归做没什么意义,我也就贴贴代码吧) 2.迭代 迭代实现: 1 class Solution { 2 public: 3 vector<int> preorderTraversal(TreeNode* root) { 4 vector<int> ans; 5 if(root){ 6 TreeNode* temp; 7 stack<TreeNode*> s; //利用栈,

数据结构之 二叉树---求二叉树后序遍历和层次遍历(先建树,再遍历)

数据结构实验之求二叉树后序遍历和层次遍历 Time Limit: 1000MS Memory limit: 65536K 题目描述 已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历. 输入 输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据.每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的先序遍历序列,第二个字符串表示二叉树的中序遍历序列. 输出 每组第一行输出二叉树的后序遍历序列,第二行输出二叉树的层次遍历序列 示例输入 2 abdegcf dbgeaf

3143 二叉树的序遍历

3143 二叉树的序遍历 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 求一棵二叉树的前序遍历,中序遍历和后序遍历 输入描述 Input Description 第一行一个整数n,表示这棵树的节点个数. 接下来n行每行2个整数L和R.第i行的两个整数Li和Ri代表编号为i的节点的左儿子编号和右儿子编号. 输出描述 Output Description 输出一共三行,分别为前序遍历,中序遍历和后序遍历.编号之间用空格隔开

Leetcode: Binary Tree Inorder Traversal(二叉树中序遍历)

题目: Given a binary tree, return the inorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1 2 / 3 return [1,3,2]. Note: Recursive solution is trivial, could you do it iteratively? 递归解法(C++): /** * Definition for binary tre

数据结构实验之求二叉树后序遍历和层次遍历

数据结构实验之求二叉树后序遍历和层次遍历 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 已知一棵二叉树的前序遍历和中序遍历,求二叉树的后序遍历. 输入 输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据.每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的先序遍历序列,第二个字符串表示二叉树的中序遍历序列. 输出 每组第一行输出二叉树的后序遍历序列,第二行输出二叉树的层次遍历序列 示例输入 2

【LeetCode-面试算法经典-Java实现】【094-Binary Tree Inorder Traversal(二叉树中序遍历)】

[094-Binary Tree Inorder Traversal(二叉树中序遍历)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 Given a binary tree, return the inorder traversal of its nodes' values. 题目大意 对一棵二叉树进行中序遍历. 解题思路 解法一:递归实现,解法二:迭代实现. 代码实现 二叉树结点类 public class TreeNode { int val; TreeNod