树的三种遍历方式(C语言实现)
//*************************************************************************
// 【前序】遍历算法
//二叉树不空,先访问根结点,然后前序遍历左子树,再前序遍历右子树
//*************************************************************************
void PreOrderTraverse(BiTree T)
{
if(T == NULL) /* 递归跳出条件*/
return;
printf("%c", T ->data); /* 对结点进行操作(可替换成其它操作)*/
PreOrderTraverse(T ->lchild); /* 先序遍历左子树*/
PreOrderTraverse(T ->rchild); /* 先序遍历右字树*/
} //*************************************************************************
// 【中序】遍历算法
//二叉树不空,从根结点开始(并非是先访问根结点),中序遍历根节点的左子树,
//然后访问根结点,最后中序遍历该根结点的右子树
//*************************************************************************
void InOrderTraverse(BiTree T)
{
if(T == NULL) /* 递归跳出条件*/
return;
InOrderTraverse(T ->lchild); /* 中序遍历左子树*/
printf("%c", T ->data); /* 对结点进行操作(可替换成其它操作)*/
InOrderTraverse(T ->rchild); /* 中序遍历右字树*/
} //*************************************************************************
// 【后序】遍历算法
//二叉树不空,从左到右先叶子后结点的方式遍历左右子树,最后遍历根结点
//*************************************************************************
void PostOrderTraverse(BiTree T)
{
if(T == NULL) /* 递归跳出条件*/
return;
PostOrderTraverse(T ->lchild); /* 后序遍历左子树*/
PostOrderTraverse(T ->rchild); /* 后序遍历右字树*/
printf("%c", T ->data); /* 对结点进行操作(可替换成其它操作)*/
}
树的三种遍历方式(C语言实现)的更多相关文章
- golang数据结构之树的三种遍历方式
tree.go package tree import ( "fmt" ) type TreeNode struct { ID int Val int Left *TreeNode ...
- java:数据结构(四)二叉查找树以及树的三种遍历
@TOC 二叉树模型 二叉树是树的一种应用,一个节点可以有两个孩子:左孩子,右孩子,并且除了根节点以外每个节点都有一个父节点.当然这种简单的二叉树不能解决让树保持平衡状态,例如你一直往树的左边添加元素 ...
- 基于Java的二叉树的三种遍历方式的递归与非递归实现
二叉树的遍历方式包括前序遍历.中序遍历和后序遍历,其实现方式包括递归实现和非递归实现. 前序遍历:根节点 | 左子树 | 右子树 中序遍历:左子树 | 根节点 | 右子树 后序遍历:左子树 | 右子树 ...
- 大数据学习day13------第三阶段----scala01-----函数式编程。scala以及IDEA的安装,变量的定义,条件表达式,for循环(守卫模式,推导式,可变参数以及三种遍历方式),方法定义,数组以及集合(可变和非可变),数组中常用的方法
具体见第三阶段scala-day01中的文档(scala编程基础---基础语法) 1. 函数式编程(https://www.cnblogs.com/wchukai/p/5651185.html): ...
- Map三种遍历方式
Map三种遍历方式 package decorator; import java.util.Collection; import java.util.HashMap; import java.util ...
- Java中List集合的三种遍历方式(全网最详)
List集合在Java日常开发中是必不可少的,只要懂得运用各种各样的方法就可以大大提高我们开发的效率,适当活用各种方法才会使我们开发事半功倍. 我总结了三种List集合的遍历方式,下面一一来介绍. 首 ...
- set的三种遍历方式-----不能用for循环遍历(无序)
set的三种遍历方式,set遍历元素 list 遍历元素 http://blog.csdn.net/sunrainamazing/article/details/71577662 set遍历元素 ht ...
- for 、foreach 、iterator 三种遍历方式的比较
习惯用法 for.foreach循环.iterator迭代器都是我们常用的一种遍历方式,你可以用它来遍历任何东西:包括数组.集合等 for 惯用法: List<String> list = ...
- Map的三种遍历方式
对于Map的三种方式遍历 1.keySet() 2.values() 3.entrySet()三种方式得到Set之后,都可以使用 foreach或者iterator, 不能使用for,因为数据结构决定 ...
随机推荐
- Spark任务流程笔记
Spark学习笔记总结 02. Spark任务流程 1. RDD的依赖关系 RDD和它依赖的父RDD(s)的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide de ...
- Canvas+Video打造酷炫播放体验
一.简介 直到现在,仍然不存在一项旨在网页上显示视频的标准. 今天,大多数视频是通过插件(比如 Flash)来显示的.然而,并非所有浏览器都拥有同样的插件. HTML5 规定了一种通过 video 元 ...
- 深入理解计算机系统_3e 第二章家庭作业答案
初始完成者:哈尔滨工业大学 李秋豪 许可:除2.55对应代码外(如需使用请联系randy.bryant@cs.cmu.edu),任何人可以自由的使用,修改,分发本文档的代码. 本机环境: (有一些需要 ...
- 优秀的CSS预处理----Less
Less语法整理 本人邮箱:kk306484328@163.com,欢迎交流讨论. 欢迎转载,转载请注明网址:http://www.cnblogs.com/kk-here/p/7601058.html ...
- MVC(3DOnLine)开发过程的一些难点以及知识点
1.当修改数据然后保存时,会提示有一行受影响无法保存 @Html.HiddenFor(model => model.UserID) 最好将主键隐藏 也就是不去修改它 原因:修改了主键 然 ...
- HDFS源码分析之NameNode(2)————Format
在Hadoop的HDFS部署好了之后并不能马上使用,而是先要对配置的文件系统进行格式化.在这里要注意两个概念,一个是文件系统,此时的文件系统在物理上还不存在,或许是网络磁盘来描述会更加合适:二就是格式 ...
- 51nod 1118 机器人走方格 解题思路:动态规划 & 1119 机器人走方格 V2 解题思路:根据杨辉三角转化问题为组合数和求逆元问题
51nod 1118 机器人走方格: 思路:这是一道简单题,很容易就看出用动态规划扫一遍就可以得到结果, 时间复杂度O(m*n).运算量1000*1000 = 1000000,很明显不会超时. 递推式 ...
- Muddy Fields
Muddy Fields Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submi ...
- css常见布局方式
CSS常见布局方式 以下总结一下CSS中常见的布局方式.本人才疏学浅,如有错误,请留言指出. 如需转载,请注明出处:CSS常见布局方式 目录: 使用BFC隐藏属性 float + margin abs ...
- C#程序员应该养成的程序性能优化写法
转载一个别人的文章 隔了很久没写东西了,主要是最近比较忙,更主要的是最近比较懒…… 其实这篇很早就想写了 工作和生活中经常可以看到一些程序猿,写代码的时候只关注代码的逻辑性,而不考虑运行效率 其实这对 ...