根据先序遍历的结果创建一棵树

根据先序遍历的结果还原一棵树 则该树是不确定的
例如 先序遍历的结果ABC 有两种形式

    如果要还原一棵树,除了要知道先序遍历的结果,还需要知道树的位置。

如果用#表示空树,

            则左边的二叉树为 AB##C##而右边的二叉树为 ABC####已只先序遍历的结果,在创建树时,先创建根节点
再递归创建左子树,再递归创建右子树。
//arr:保存先序遍历序列的字符串
//size: 字符串的长度
//index: 位置下标
//null_flag:为空树的标志
TreeNode* _CreateTree(TreeType arr[],size_t size, size_t* index, char null_flag)60 {                                                                                                                                                                  61     if(arr==NULL||index==NULL||size<0)62     {63         //非法输入64         return NULL;65     }66     if(arr[*index]==null_flag)67     {68         //空子树69         return NULL;70     }71     //创建根结点72     TreeNode* root=CreateNode(arr[*index]);73     (*index)++;74     //递归创建左子树75     root->lchild=_TreeCreate(arr,size, index,null_flag);76     (*index)++77     //递归创建右子树78     root->rchild=_TreeCreate(arr,size,index,null_flag);79     return root;80 }81 8183 TreeNode* CreateTree(TreeType arr[],size_t size, char null_flag)84 {85     int index=0;86     TreeNode* root=_TreeCreate(arr,size,&index,null_flag);87     return root ;88 }

根据先序遍历的结果创建一棵树【D.S】相关推荐

  1. C语言学习笔记——根据二叉树的后序和中序遍历序列,求这棵树的先序和层次遍历序列

    先根据二叉树的后序和中序遍历序列,用递归的方法创建出这棵树,然后用的自定义栈的先序和层次方法遍历. 输入:  7 2 3 1 5 7 6 4                      1 2 3 4 ...

  2. #tree创建一棵树

    #pragma once #include <iostream> #include <vector> #include <string>using namespac ...

  3. VTK:创建一棵树并标记顶点和边用法实战

    VTK:创建一棵树并标记顶点和边用法实战 程序输出 程序完整源代码 程序输出 程序完整源代码 #include <vtkDataSetAttributes.h> #include < ...

  4. 利用树的先序和后序遍历打印os中的目录树

    [0]README 0.1)本代码均为原创,旨在将树的遍历应用一下下以加深印象而已:(回答了学习树的遍历到底有什么用的问题?)你对比下linux 中的文件树 和我的打印结果就明理了: 0.2)我们采用 ...

  5. 【CCCC】L2-006 树的遍历 (25分),根据后序与中序遍历建立二叉树(我讨厌树,系列1)

    problem L2-006 树的遍历 (25分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30), ...

  6. 后序遍历c语言程序,C++对树进行后序遍历的代码

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. #include #include struct Node{ Node *lchild;/ ...

  7. java建树_JAVA实现通过中序遍历和后序遍历序列建树,并求树的高度,用层次遍历做验证...

    作为例子的树长这样: package bstpractice; import java.util.ArrayList; import java.util.Arrays; import java.uti ...

  8. java中先序创建一棵树,恳求大佬指点!!!首先标明空子树的先根遍历序列建立一棵二叉树...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 回复 甜味_猫 : public class BiTree { private BiTreeNode root; public BiTree(String ...

  9. 016.从中序与后序遍历序列构造二叉树

    题目链接: 106. 从中序与后序遍历序列构造二叉树 大概思路: 题目要求: 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder ...

最新文章

  1. 1112: 零起点学算法19——输出特殊值
  2. 巴菲特评科技股:投资 IBM 是个错误,还会增持苹果,亚马逊简直是奇迹
  3. Git + BeyondCompare
  4. 计算机网络基础 — 网络设备类型
  5. python 哪些比赛项目_70个超火python小项目列表,拿走·不谢
  6. 计算机的主要危害是什么意思,cpu使用率是什么意思 cpu使用率低但是电脑卡原因...
  7. 销售抬头文本配置方法
  8. HDU2015校赛 The Country List
  9. mysql循环队列_数据结构:循环队列
  10. java tostring 库_java重寫toString()方法
  11. JAVA 第3课 数组
  12. 图表中如何实现动态变更分类轴与系列值
  13. 《深入剖析Nginx》一2.5 加桩调试
  14. Linux内核学习笔记(一)CFS完全公平调度类
  15. jmeter压力测试
  16. serv-u+win2008R2+cutFtp配置
  17. 杀OSO.EXE和conime.exe过程总结
  18. 电信显示isp服务器连不上,电信拨号上网连接不上的原因是什么
  19. 计算机再带word打不开,电脑word文档打不开怎么办(附:4种解决办法)
  20. 七缸发动机预热,docker swarm + .net core 高速飙车成功

热门文章

  1. kingroot权限管理_KingRoot
  2. matlab数据类型 —— 浮点型
  3. 钉钉无法直接打开,需要关闭进程后重新打开
  4. 一个在家写代码的80后
  5. 推荐一波2018年让人惊喜的手机小众APP
  6. php排序数组排序_php简单实现多维数组排序的方法
  7. 一个VR游戏DEMO的开发历程是怎样的?
  8. C++ make_shared() shared_prt()用法
  9. C语言编程找出1000以内的所有完数
  10. 【jmeter使用技巧篇之】接口关联和全局变量设置