#include <iostream>
using namespace std; struct Tree
{
int data;
Tree *lchild;
Tree *rchild;
}tree; Tree *Create(int a1[],int b1[],int n)
{
int k;
if(n<=)
return NULL;
int root=a1[];
Tree *bt=(Tree *)malloc(sizeof(Tree));
bt->data=root;
for(k=;k<n;k++)
{
if(b1[k]==root)
break;//分割左右子树
}
bt->lchild=Create(a1+,b1,k);
bt->rchild=Create(a1+k+,b1+k+,n-k-);
return bt;
} int Tsum(Tree *r)
{
if(r->lchild==NULL&&r->rchild==NULL)
return r->data;
if(r->lchild==NULL&&r->rchild!=NULL)
return Tsum(r->rchild);
if(r->lchild!=NULL&&r->rchild==NULL)
return Tsum(r->lchild);
if(r->lchild!=NULL&&r->rchild!=NULL)
return Tsum(r->lchild)+Tsum(r->rchild);
return r->data;
} int main()
{
Tree *rt;
int sum1;
int a[],b[],N;//N为总节点数,a为先序序列,b为中序序列
cin>>N;
for(int i=;i<N;i++)
cin>>a[i];
for(int i=;i<N;i++)
cin>>b[i];
rt=Create(a,b,N);//存树
sum1=Tsum(rt);
cout<<sum1<<endl;
return ;
}

C++练习 | 递归创建二叉树并求叶子结点的数值和的更多相关文章

  1. 非递归创建二叉树( C++队列 )

    非递归按照 层序 创建二叉树,利用 队列(即可先进先出特点)存放已访问的结点元素的地址. 初始化:front=rear= -1: 每储存一个结点元素 rear+1 ,利用 rear%2==0 来使 f ...

  2. C语言实现二叉树中统计叶子结点的个数&度为1&度为2的结点个数

    算法思想 统计二叉树中叶子结点的个数和度为1.度为2的结点个数,因此可以参照二叉树三种遍历算法(先序.中序.后序)中的任何一种去完成,只需将访问操作具体变为判断是否为叶子结点和度为1.度为2的结点及统 ...

  3. 数据结构(3) 第三天 栈的应用:就近匹配/中缀表达式转后缀表达式 、树/二叉树的概念、二叉树的递归与非递归遍历(DLR LDR LRD)、递归求叶子节点数目/二叉树高度/二叉树拷贝和释放

    01 上节课回顾 受限的线性表 栈和队列的链式存储其实就是链表 但是不能任意操作 所以叫受限的线性表 02 栈的应用_就近匹配 案例1就近匹配: #include <stdio.h> in ...

  4. Java实现二叉树地遍历、求深度和叶子结点的个数

    一.分析 二叉树是n个结点所构成的集合,它或为空树,或为非空树.对于非空树,它有且仅有一个根结点,且除根结点以外的其余结点分为两个互不相交的子集,分别称为左子树和右子树,它们本身又都是二叉树. 显而易 ...

  5. c++实现二叉树层序、前序创建二叉树,递归非递归实现二叉树遍历

    #include <iostream> #include <cstdio> #include <stdio.h> #include <string> # ...

  6. 递归------python实现列表创建二叉树

    # -*- coding:utf-8 -*- '二叉树结点类' class TreeNode: def __init__(self, x): self.val = x self.left = None ...

  7. SDUT 3346 数据结构实验之二叉树七:叶子问题

    数据结构实验之二叉树七:叶子问题 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 已知一个按 ...

  8. SDUT OJ 数据结构实验之二叉树七:叶子问题

    数据结构实验之二叉树七:叶子问题 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descri ...

  9. SDUT-3346_数据结构实验之二叉树七:叶子问题

    数据结构实验之二叉树七:叶子问题 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 已知一个按先序输入的字符序列,如abd ...

随机推荐

  1. Java学习笔记(5)----使用正则表达式解决Google Code Jam Qualification2009赛题 Alien Language

    原题地址:https://code.google.com/codejam/contest/90101/dashboard#s=p0 题目描述: Problem After years of study ...

  2. android 原生 MediaPlayer 和 MediaCodec 的区别和联系(三)

    目录:     (4)Android 官方网站 对 MediaCodec的介绍 注:编解码器特定数据(Code-specific Data,简写为csd) 部分结合网上资料加入了补充和个人理解.请悉知 ...

  3. PyCharm添加Selenium与Appium依赖

  4. JDK自带工具native2ascii

    背景:在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文件就需要进行Unicode重新编码.原因是java ...

  5. 哪个HTML5内建对象用于在画布上绘制?()

    哪个HTML5内建对象用于在画布上绘制?() getContent getContext getGraphics getCanvas 我的理解: A.C.D不存在HTML5,,js方法中 HTML 5 ...

  6. C/C++内存管理详解 ZZ

    内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的 检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存 ...

  7. Ionic微信开发之环境配置

    在开发微信版的H5页面时,如果需要正常调用微信公众号的开放接口(测试或者发布情况),根据官方要求需要保证网页域名和后端维护的一致.因此,进行真服测试就显得很有必要.WebStorm提供了实时远程部署的 ...

  8. Hypver-V中的快照

    应用快照选项的区别: 获取并应用快照:对虚拟机当前的状态进行快照,然后恢复到所选的快照状态 应用:不保存当前虚拟机的状态,直接将其恢复到所选的快照状态

  9. 在NGUI中高效优化UIScrollView之UIWrapContent的简介以及使用

    前言: 1.我使用的NGUI版本为 v3.7.5,不知道老版的NGUI是否有UIWrapContent 这个脚本. 2.本文讲解主要以图片显示的例子为主,本文例子UIScrollView是水平方向,一 ...

  10. Python学习---装饰器的学习1210

    装饰器的基础 学习前提: 作用域 + 函数的理解 + 闭包  [学习,理解] 代码编写原则: 对修改开放对扩展开放 装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前 ...