题目: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【建树遍历】相关推荐

  1. treeselect 清空销毁树_antd———Tree结构之探索遍历及删除

    前言:笔者在前端开发过程中遇到关于树的问题,把antd官方的Tree组件直接拿下来用了,刚开始其他方法都还好,当需求中写个节点的删除功能的时候,因为算法功底不好,导致此功能实现不了,所以有了此文 背景 ...

  2. PAT甲级1020 Tree Traversals:[C++题解]树的遍历、由中序序列和后序序列递归建树

    文章目录 题目分析 题目链接 题目分析 题意重述:给定一棵二叉树的后序遍历序列和中序遍历序列,让求层次遍历的序列. 分析: 后序遍历:先 左子树.右子树 ,最后再遍历根结点. 中序遍历:先左子树,再根 ...

  3. 03-树3 Tree Traversals Again(树的遍历)

    03-树3 Tree Traversals Again 分数 25 作者 陈越 单位 浙江大学 An inorder binary tree traversal can be implemented ...

  4. java语言构造顺序树_PAT-1086(Tree Traversals Again)Java语言实现+根据中序和前序遍历构建树并且给出后序遍历序列...

    import java.util.Scanner; import java.util.Stack; /** * @Author WaleGarrett * @Date 2020/9/5 12:02 * ...

  5. PAT甲级1086 Tree Traversals Again:[C++题解]二叉树中序序列、栈、求后序遍历

    文章目录 题目分析 题目链接 题目分析 分析: 给定栈模拟的二叉树的中序序列. 我们可以发现一些性质: 1 第一个值是根结点. 2 对于所有的push操作,如果上一个是push,该结点就是上一个结点的 ...

  6. 【练习】树(Tree, UVa 548)给一棵点带权(权值各不相同)的二叉树的中序和后序遍历,找一个叶子使得它到根的路径上的权和最小。

    给一棵点带权(权值各不相同,都是小于10000的正整数)的二叉树的中序和后序遍历,找一个叶子使得它到根的路径上的权和最小.如果有多解,该叶子本身的权应尽量小.输入中每两行表示一棵树,其中第一行为中序遍 ...

  7. hdu 1710 Binary Tree Traversals (二叉树)

    1 /********************************************************** 2 题目: Binary Tree Traversals(hdu 1710) ...

  8. C++实现树的建立,查找,遍历输出

    C++实现树的建立,查找,遍历输出: #include<iostream> #include<stack> using namespace std; template<c ...

  9. 1020. Tree Traversals (25)

    题目链接:http://www.patest.cn/contests/pat-a-practise/1020 题目: 1020. Tree Traversals (25) 时间限制 400 ms 内存 ...

  10. 数据结构与算法(C++)– 树(Tree)

    数据结构与算法(C++)– 树(Tree) 1.树的基础知识 树(tree): 一些节点的集合,可以为空集 子树(sub tree): 树的子集 根(root): 树的第一个节点 孩子和父亲(Chil ...

最新文章

  1. java random构造方法_Java中的Random()函数及两种构造方法
  2. scala中_下划线的使用
  3. oracle 10g 返回RemoteOperationException: ERROR: Wrong password for user
  4. 【java SOAP】对SOAP的一个个人印象
  5. jmeter重写java请求_jmeter之编写java请求-扩展Java Sampler
  6. Android之本地摄像头,Android之调用本地摄像头
  7. gevent的同步与异步
  8. c 普通的文本变成注释文本的快捷键_phpstrom 快捷键,记一下记一下!(life)
  9. 简易的设计模式——桥梁模式
  10. 利用html表格制作个人简历
  11. 华为mt2c00 android7.0,mate9安卓7.0哪个版本最好用
  12. java基础完整代码,22年最新
  13. solidworks 之迈迪同步轮尺寸与设计不复的解决
  14. 2016--MatConvNet Convolutional Neural Networks for MATLAB
  15. Excel中输入身份证号后三位变成0的情况处理如下
  16. 报错UnicodeDecodeError ‘gbk‘ codec can‘t decode byte 0x93 in position 7104 illegal multibyte sequence
  17. 怎样让自己的【微信公众号】快速涨粉?
  18. vue 手写签名_与众不同的手写签批
  19. 崩坏3区号+86_崩坏3春节祝福电话怎么接_崩坏3春节祝福电话接听条件介绍-街机中国...
  20. 2019最新 BAT、TMD等公司技术面试题及其答案

热门文章

  1. Ureport2源码启动
  2. win10 重置登录账户密码
  3. 数据库锁机制 很详细的教程,易懂
  4. ABB机器人GSD文件获取的几种方法
  5. 阿里巴巴java开发手册 《Java开发手册》v1.5.0 华山版.pdf
  6. Scratch3.0的作品如何转换成H5或.exe
  7. 风险管理计划包括哪些内容
  8. 【数据产品案例】阿里生意参谋-用户分析
  9. 像素图片转矢量图片——从图像中提取曲线信息
  10. 2021深圳杯数学建模D题思路分析