给定一个前序序列数组,将该数组转化为二叉树,本文实现如果节点没有左右孩子则用“#”代替,具体核心Java代码实现如下:

/*** 根据前序序列创建二叉树*/
public void createBinaryTreePre(ArrayList<String> data){createBinaryTreePre(data.size(),data);
}private TreeNode createBinaryTreePre(int size, ArrayList<String> data) {if (data.size()==0){return null;}String d = data.get(0);TreeNode node;/*** 标记当前的索引位置*/int index=size-data.size();if (d.equals("#")){node=null;data.remove(0);return node;}node=new TreeNode(index,d);if (index==0){root=node;}/*** 移除数组的第一个元素*/data.remove(0);node.leftChild=createBinaryTreePre(size,data);node.rightChild=createBinaryTreePre(size,data);return node;}

根据前序序列创建二叉树相关推荐

  1. 数据结构与算法实验 实验6:二叉树ADT的二叉链式实现 (由完全前序序列创建二叉树 / 求二叉树的节点数/树高/叶子节点数 /先序中序后序层序遍历)

    假设二叉数的数据元素为字符,采用二叉链式存储结构.请编码实现二叉树ADT,其中包括创建二叉树.遍历二叉树(深度.广度).求二叉树的深度(高度).计算二叉树的元素个数.计算二叉树的叶子数.二叉树的格式输 ...

  2. 7-10 先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数 (10 分)

    7-10 先序序列创建二叉树,输出先序序列.中序序列.后序序列并输出叶子结点数 (10 分) 对于给定的二叉树,输出其先序序列.中序序列.后序序列并输出叶子结点数. 输入格式: 二叉树的先序遍历序列. ...

  3. 由标明空子树的先序遍历序列创建二叉树

    由标明空子树的先序遍历序列创建二叉树 i=0 def createBiTree2(preOrder): # i为常数0 global i c = preOrder[i] # 取字符 if c != ' ...

  4. 按照前序遍历创建二叉树及树的四种遍历方式

    一.二叉树的介绍 二叉树的特点是二叉树的每个结点的度都不大于2,可以视为每个结点都有左孩子和右孩子.故二叉树结点的数据结构为 二.二叉树的特点 1.设根结点所在的层数为第1层,则第i层最多有个结点. ...

  5. 扩展二叉树的中序序列创建二叉树?

    一.前言 我们都知道,任意一棵二叉树的前序序列.中序序列.后序序列都是唯一的.但是,反过来是否唯一对应呢?

  6. 先根序列创建二叉树c语言,用C语言创建二叉树并先序遍历.doc

    用C语言创建二叉树并先序遍历 用C语言创建二叉树并 #include "stdio.h" #include "stdlib.h" typedef struct ...

  7. 根据先序序列和中序,后序和中序序列创建二叉树

    思考:如何才能确定一棵树? 结论:    通过中序遍历和先序遍历可以确定一个树                 通过中序遍历和后续遍历可以确定一个树 通过先序遍历和后序遍历确定不了一个树. 算法实现: ...

  8. 按照层次序列创建二叉树,并判断二叉树是否为二叉搜索树

    首先定义树节点的数据结构,如下: struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; }; 两个函数,用 ...

  9. 天梯选拔:先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数

    思路分析: 这道题考察二叉树的建立以及二叉树的前序遍历.中序遍历和后序遍历.首先按照先序建立二叉树.在这期间需要先建立一个结构体,包括当前节点的值,以及它的左儿子和右儿子.注意这里不能直接存左儿子和右 ...

  10. 利用二叉树先序遍历序列创建二叉树的算法

    根据C语言数据结构第六版课本算法5.3 void CreateBiTree(BiTree &T) { //算法5.3 按先序遍历输入二叉树中的节点的值//构造二叉链表表示的二叉树TTElemT ...

最新文章

  1. SpringCloud系列一:SpringCloud的简介和架构
  2. 手把手教你在Linux上搭建BitTorrent服务器
  3. 华强北AirPods洛达1562A固件升级教程,带空间音频(艾创力+东莞豪锐)
  4. 浅谈Javascript -- 【嵌套函数及闭包】
  5. 称重指示器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  6. java贪吃蛇_Java贪吃蛇游戏完善版
  7. iOS上架app store下载步骤
  8. 用友打印问题合集 二【各模块】
  9. cad字体安装_拿了CAD字体不知道怎么装?看过来
  10. BUUCTF Misc 弱口令 [RoarCTF2019]黄金6年 小易的U盘 [WUSTCTF2020]alison_likes
  11. 龙泉寺贤超法师:用AI为古籍经书识别、断句、翻译
  12. Win10开始菜单点击没有反应打不开怎么办?
  13. python IO编程
  14. mac运行.py提示缺少模块的解决方法
  15. html5之role作用
  16. 洛谷oj P2802 回家(BFS)
  17. Python 机器学习实战 —— 监督学习(下)
  18. unity游戏开发入门-spine
  19. Unity Tag标签
  20. 1.54寸墨水屏模块 E-Paper电子纸显示屏STM32C8T6驱动代码以及调试过程

热门文章

  1. 不同IP网段连接网络打印机
  2. 基于springboot,vue旅游信息推荐系统
  3. HAL库学习笔记-10 HAL库外设驱动框架概述
  4. PNAS | 人类线粒体的双亲遗传模式
  5. 【LeetCode刷题——数据结构篇】
  6. win7控件无法安装怎么办【系统天地】
  7. qtabwidget设置表头_QTableWidget添加表头菜单 并 可以通过表头菜单隐藏选中列
  8. 图像金字塔——pyrDown和pyrUp
  9. php 用户控件,一个使用用户控件(包括组件)的演示-.NET教程,组件控件开发
  10. python中复选框取消修改_Python tkinter复选框双重检查/取消选中(Python tkinter Checkboxes double check/uncheck)...