题意: 同时给两个序列,分别是二叉树的中序遍历和后序遍历,求出根节点到叶子结点路径上的权值最小和 的那个 叶子节点的值,若有多个最小权值,则输出最小叶子结点的和。

想法: 一开始想着建树,但是没有这样建过,周赛题又出了一遍,没办法,后来尝试了一下,真的建出来了,也不难。

建树--->遍历二叉树----->over

注意: 这里必须是多组输入,否则就错了,记得吸收空格。

关于 先序遍历  根左右        后序遍历   左右根    中序遍历 左根右

遇到了几道 关于遍历的题,有点小体会,一般都是给出两种遍历结果,建树 或者 求另一种遍历顺序,但是每次都给出来中序遍历(没遇到过不给的,遇到了再说) 不管怎样,最重要的是(通过前序或者后序)找出根节点,然后(通过中序)分清左右子树是哪段区间,用指针来做 很方便,指向根节点就好。

看代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int a[10010],b[10010];
char s[10010];
struct node
{
int val;
node *lch,*rch;
};
struct qq
{
int val,leave;
} q[10100];
node *dfs(int *p1,int *p2,int n)传入中序首地址 后序的跟节点地址 中序数组长度
{
if(n<=0)
return NULL;
int i;
for(i=0; p2[0]!=p1[i]; i++);
node *q= new node;
q->val=p2[0]; q->rch=dfs(p1+i+1,p2-1,n-i-1); // 右 两个函数可以倒过来,无所谓
q->lch=dfs(p1,p2-n+i,i);//左 return q;
}
bool cmp(qq a,qq b)
{
if(a.val!=b.val)
return a.val<b.val;
return a.leave<b.leave;
}
int ww;
void found(node *p,int sum)//先序遍历二叉树
{
if(p==NULL)
return ;
sum+=p->val;
if(p->lch==NULL&&p->rch==NULL)
{
q[ww].val=sum;
q[ww++].leave=p->val;//储存路径值 和 叶子结点 值
//return ;
}
found(p->lch,sum);
found(p->rch,sum);
}
int main()
{
while(gets(s))//必须多组输入,注意吸收回车
{
ww=0;
int k=0,w=0;
for(int i=0; s[i]!='\0'; i++)
{
if(s[i]==' ')
{
a[w++]=k;
k=0;
}
else
k=k*10+s[i]-'0';
}
a[w++]=k;
for(int i=0; i<w; i++)
scanf("%d",&b[i]);
getchar();
node *p=dfs(a,b+w-1,w);
found(p,0);
sort(q,q+ww,cmp);
printf("%d\n",q[0].leave);
}
return 0;
}

UVA - 548 根据中序遍历和后序遍历建二叉树(关于三种遍历二叉树)的更多相关文章

  1. PTA 二叉树的三种遍历(先序、中序和后序)

    6-5 二叉树的三种遍历(先序.中序和后序) (6 分)   本题要求实现给定的二叉树的三种遍历. 函数接口定义: void Preorder(BiTree T); void Inorder(BiTr ...

  2. 基于Java的二叉树的三种遍历方式的递归与非递归实现

    二叉树的遍历方式包括前序遍历.中序遍历和后序遍历,其实现方式包括递归实现和非递归实现. 前序遍历:根节点 | 左子树 | 右子树 中序遍历:左子树 | 根节点 | 右子树 后序遍历:左子树 | 右子树 ...

  3. C++编程练习(8)----“二叉树的建立以及二叉树的三种遍历方式“(前序遍历、中序遍历、后续遍历)

    树 利用顺序存储和链式存储的特点,可以实现树的存储结构的表示,具体表示法有很多种. 1)双亲表示法:在每个结点中,附设一个指示器指示其双亲结点在数组中的位置. 2)孩子表示法:把每个结点的孩子排列起来 ...

  4. 非递归实现二叉树的三种遍历操作,C++描述

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  5. 谈谈vector容器的三种遍历方法

    说明:本文仅供学习交流.转载请标明出处.欢迎转载!          vector容器是最简单的顺序容器,其用法相似于数组.实际上vector的底层实现就是採用动态数组.在编敲代码的过程中.经常会变量 ...

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

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

  7. java编写二叉树以及前序遍历、中序遍历和后序遍历 .

    /** * 实现二叉树的创建.前序遍历.中序遍历和后序遍历 **/ package DataStructure; /** * Copyright 2014 by Ruiqin Sun * All ri ...

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

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

  9. 根据 中序遍历 和 后序遍历构造树(Presentation)(C++)

    好不容易又到周五了,周末终于可以休息休息了.写这一篇随笔只是心血来潮,下午问了一位朋友PAT考的如何,顺便看一下他考的试题,里面有最后一道题,是关于给出中序遍历和后序遍历然后求一个层次遍历.等等,我找 ...

随机推荐

  1. tfgan折腾笔记(二):核心函数详述——gan_model族

    定义model的函数有: 1.gan_model 函数原型: def gan_model( # Lambdas defining models. generator_fn, discriminator ...

  2. 《自拍教程35》段位二_Python面向过程函数

    Python批处理脚本只能处理较为简单的顺序执行的语句, 语句太多了,就有点乱...是时候升级一下了. 函数可以将多条语句分组封装,实现面向过程的,简单的模块化管理. 方便将语句实行"网格& ...

  3. 带你入门 CSS Grid 布局

    前言 三月中旬的时候,有一个对于 CSS 开发者来说很重要的消息,最新版的 Firefox 和 Chrome 已经正式支 CSS Grid 这一新特性啦.没错:我们现在就可以在最流行的两大浏览器上玩转 ...

  4. htmlhint 规则详解

    HTML 静态检查规则 HTMLHint 工具内置 23 条规则,可以对 HTML 代码文件进行静态代码检查,从而提高 HTML 代码编写的规范和质量.现在把 23 条规则翻译如下. 一.规则列表 标 ...

  5. ABP开发框架前后端开发系列---(16)ABP框架升级最新版本的经验总结

    有一小段时间没有持续升级ABP框架了,最近就因应客户的需要,把ABP框架进行全面的更新,由于我们应用的ABP框架,基础部分还是会使用官方的内容,因此升级的时候需要把官方基础ABP的DLL进行全面的更新 ...

  6. Cinemachine简介

      先贴一下官方的Cinemachine文档Cinemachine Documentation 简介 使用   我们第一次使用Cinemachine时大概是这样一个流程: 在需要被控制的Camera上 ...

  7. 开源字体不香吗?五款 GitHub 上的爆红字体任君选

    作者:HelloGitHub-ChungZH 在编程时,用一个你喜欢的字体可以大大提高效率,越看越舒服.这篇文章就推荐 5 个在 GitHub 上优秀的字体供大家选择吧! 1. Iosevka 网站: ...

  8. Chromium的无锁线程模型C++代码示例

    引言 作者:程序员bingo,主要关注客户端架构设计.性能优化.崩溃处理,有多年的Chromium浏览器开发经验. 多线程一直是软件开发中最容易出问题的环节,很多的崩溃.卡死问题都与多线程有关.在常用 ...

  9. 三维GIS引擎地图可视化渲染方案设计

    1.GIS地图可视化流程 GIS地图可视化就是将空间数据转化为地图数据再进行交互处理的方法,下图一展示了地图可视化的可编程渲染的典型管道,原始空间数据必须处理为图形API支持基础图元用以地图渲染.下图 ...

  10. plantUML最佳实践

    plantUML 使用plantUML中的活动图用来画流程图很好用; 但类图等就不很好用; 个人体会如下: • 时序图 推荐 • 用例图 一般 • 类 图 不推荐, 用Visual Paradigm或 ...