根据先序遍历的结果创建一棵树【D.S】
根据先序遍历的结果创建一棵树
根据先序遍历的结果还原一棵树 则该树是不确定的
例如 先序遍历的结果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】相关推荐
- C语言学习笔记——根据二叉树的后序和中序遍历序列,求这棵树的先序和层次遍历序列
先根据二叉树的后序和中序遍历序列,用递归的方法创建出这棵树,然后用的自定义栈的先序和层次方法遍历. 输入: 7 2 3 1 5 7 6 4 1 2 3 4 ...
- #tree创建一棵树
#pragma once #include <iostream> #include <vector> #include <string>using namespac ...
- VTK:创建一棵树并标记顶点和边用法实战
VTK:创建一棵树并标记顶点和边用法实战 程序输出 程序完整源代码 程序输出 程序完整源代码 #include <vtkDataSetAttributes.h> #include < ...
- 利用树的先序和后序遍历打印os中的目录树
[0]README 0.1)本代码均为原创,旨在将树的遍历应用一下下以加深印象而已:(回答了学习树的遍历到底有什么用的问题?)你对比下linux 中的文件树 和我的打印结果就明理了: 0.2)我们采用 ...
- 【CCCC】L2-006 树的遍历 (25分),根据后序与中序遍历建立二叉树(我讨厌树,系列1)
problem L2-006 树的遍历 (25分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30), ...
- 后序遍历c语言程序,C++对树进行后序遍历的代码
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. #include #include struct Node{ Node *lchild;/ ...
- java建树_JAVA实现通过中序遍历和后序遍历序列建树,并求树的高度,用层次遍历做验证...
作为例子的树长这样: package bstpractice; import java.util.ArrayList; import java.util.Arrays; import java.uti ...
- java中先序创建一棵树,恳求大佬指点!!!首先标明空子树的先根遍历序列建立一棵二叉树...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 回复 甜味_猫 : public class BiTree { private BiTreeNode root; public BiTree(String ...
- 016.从中序与后序遍历序列构造二叉树
题目链接: 106. 从中序与后序遍历序列构造二叉树 大概思路: 题目要求: 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder ...
最新文章
- 1112: 零起点学算法19——输出特殊值
- 巴菲特评科技股:投资 IBM 是个错误,还会增持苹果,亚马逊简直是奇迹
- Git + BeyondCompare
- 计算机网络基础 — 网络设备类型
- python 哪些比赛项目_70个超火python小项目列表,拿走·不谢
- 计算机的主要危害是什么意思,cpu使用率是什么意思 cpu使用率低但是电脑卡原因...
- 销售抬头文本配置方法
- HDU2015校赛 The Country List
- mysql循环队列_数据结构:循环队列
- java tostring 库_java重寫toString()方法
- JAVA 第3课 数组
- 图表中如何实现动态变更分类轴与系列值
- 《深入剖析Nginx》一2.5 加桩调试
- Linux内核学习笔记(一)CFS完全公平调度类
- jmeter压力测试
- serv-u+win2008R2+cutFtp配置
- 杀OSO.EXE和conime.exe过程总结
- 电信显示isp服务器连不上,电信拨号上网连接不上的原因是什么
- 计算机再带word打不开,电脑word文档打不开怎么办(附:4种解决办法)
- 七缸发动机预热,docker swarm + .net core 高速飙车成功