03-树3 Tree Traversals Again【建树遍历】
题目:Tree Traversals Again
题意:给出非递归(栈)形式按中序建的树,将这个树按后序输出!
思路:因为给出是中序形式,所以每push一个元素,说明当前元素为栈顶元素的左孩子或右孩子,这样我们利用栈就可以建起树了!
(1)按题意输入的加入一个将元素加入栈;
(2)每push一个元素时,这个元素作为当前栈顶的元素的孩子;
用变量将每次的栈顶的元素保存;
(3)递归后序输出即可、
代码:
#include <cstdio>
#include <cstring>
#include <stack>
#include <algorithm>
using namespace std;
struct node{int left,right;
}tree[35];
stack<int>sk;
int cnt,n;
void traversal(int start){if(tree[start].left) traversal(tree[start].left);if(tree[start].right) traversal(tree[start].right);printf("%d",start);if(++cnt < n) printf(" ");
}
int main(){int fig;char str[10];while(scanf("%d",&n)!=EOF){while(!sk.empty()) sk.pop();memset(tree,0,sizeof(tree));int top = 0;for(int i=0;i<n*2;i++){scanf("%s",str);if(str[1] == 'u'){scanf("%d",&fig);sk.push(fig);if(tree[top].left == 0) tree[top].left = fig;//先加左树else tree[top].right = fig;//左树右值,说明这个为右树上的值了top = sk.top();//保存栈顶,当前的根}else{top = sk.top();//同上sk.pop();}}cnt = 0;traversal(tree[0].left);printf("\n");}return 0;
}
03-树3 Tree Traversals Again【建树遍历】相关推荐
- treeselect 清空销毁树_antd———Tree结构之探索遍历及删除
前言:笔者在前端开发过程中遇到关于树的问题,把antd官方的Tree组件直接拿下来用了,刚开始其他方法都还好,当需求中写个节点的删除功能的时候,因为算法功底不好,导致此功能实现不了,所以有了此文 背景 ...
- PAT甲级1020 Tree Traversals:[C++题解]树的遍历、由中序序列和后序序列递归建树
文章目录 题目分析 题目链接 题目分析 题意重述:给定一棵二叉树的后序遍历序列和中序遍历序列,让求层次遍历的序列. 分析: 后序遍历:先 左子树.右子树 ,最后再遍历根结点. 中序遍历:先左子树,再根 ...
- 03-树3 Tree Traversals Again(树的遍历)
03-树3 Tree Traversals Again 分数 25 作者 陈越 单位 浙江大学 An inorder binary tree traversal can be implemented ...
- java语言构造顺序树_PAT-1086(Tree Traversals Again)Java语言实现+根据中序和前序遍历构建树并且给出后序遍历序列...
import java.util.Scanner; import java.util.Stack; /** * @Author WaleGarrett * @Date 2020/9/5 12:02 * ...
- PAT甲级1086 Tree Traversals Again:[C++题解]二叉树中序序列、栈、求后序遍历
文章目录 题目分析 题目链接 题目分析 分析: 给定栈模拟的二叉树的中序序列. 我们可以发现一些性质: 1 第一个值是根结点. 2 对于所有的push操作,如果上一个是push,该结点就是上一个结点的 ...
- 【练习】树(Tree, UVa 548)给一棵点带权(权值各不相同)的二叉树的中序和后序遍历,找一个叶子使得它到根的路径上的权和最小。
给一棵点带权(权值各不相同,都是小于10000的正整数)的二叉树的中序和后序遍历,找一个叶子使得它到根的路径上的权和最小.如果有多解,该叶子本身的权应尽量小.输入中每两行表示一棵树,其中第一行为中序遍 ...
- hdu 1710 Binary Tree Traversals (二叉树)
1 /********************************************************** 2 题目: Binary Tree Traversals(hdu 1710) ...
- C++实现树的建立,查找,遍历输出
C++实现树的建立,查找,遍历输出: #include<iostream> #include<stack> using namespace std; template<c ...
- 1020. Tree Traversals (25)
题目链接:http://www.patest.cn/contests/pat-a-practise/1020 题目: 1020. Tree Traversals (25) 时间限制 400 ms 内存 ...
- 数据结构与算法(C++)– 树(Tree)
数据结构与算法(C++)– 树(Tree) 1.树的基础知识 树(tree): 一些节点的集合,可以为空集 子树(sub tree): 树的子集 根(root): 树的第一个节点 孩子和父亲(Chil ...
最新文章
- java random构造方法_Java中的Random()函数及两种构造方法
- scala中_下划线的使用
- oracle 10g 返回RemoteOperationException: ERROR: Wrong password for user
- 【java SOAP】对SOAP的一个个人印象
- jmeter重写java请求_jmeter之编写java请求-扩展Java Sampler
- Android之本地摄像头,Android之调用本地摄像头
- gevent的同步与异步
- c 普通的文本变成注释文本的快捷键_phpstrom 快捷键,记一下记一下!(life)
- 简易的设计模式——桥梁模式
- 利用html表格制作个人简历
- 华为mt2c00 android7.0,mate9安卓7.0哪个版本最好用
- java基础完整代码,22年最新
- solidworks 之迈迪同步轮尺寸与设计不复的解决
- 2016--MatConvNet Convolutional Neural Networks for MATLAB
- Excel中输入身份证号后三位变成0的情况处理如下
- 报错UnicodeDecodeError ‘gbk‘ codec can‘t decode byte 0x93 in position 7104 illegal multibyte sequence
- 怎样让自己的【微信公众号】快速涨粉?
- vue 手写签名_与众不同的手写签批
- 崩坏3区号+86_崩坏3春节祝福电话怎么接_崩坏3春节祝福电话接听条件介绍-街机中国...
- 2019最新 BAT、TMD等公司技术面试题及其答案