中序遍历 java_java二叉树中序遍历递归和非递归实现
之前给大家介绍了java二叉树前序遍历递归和非递归实现的内容,下面就接着给大家介绍java中序遍历递归和非递归实现的内容,一起看看吧。
1、中序遍历
看看访问顺序:左子树-根节点-右子树;
上面图片的访问结果是ADEFGHMZ;
(1)递归实现public void inOrderTraverse(TreeNode root)
{
if (root != null)
{
inOrderTraverse(root.left);
System.out.print(root.val + "->");
inOrderTraverse(root.right);
}
}
(2)非递归实现public void inOrderTraverse(TreeNode root)
{
Stack stack = new Stack ();
TreeNode node = root;
while (node != null || !stack.isEmpty())
{
if (node != null)
{
stack.push(node);
node = node.left;
}
else
{
TreeNode tem = stack.pop();
System.out.print(tem.val + "->");
node = tem.right;
}
}
}
以上的实现方式你都清楚了吗?你还想了解更多java程序代码例子吗?请继续来奇Q工具网进行了解吧。
推荐阅读:
中序遍历 java_java二叉树中序遍历递归和非递归实现相关推荐
- 分别用递归和非递归方式实现二叉树先序、中序和后序遍历(java实现)
分别用递归和非递归方式实现二叉树先序.中序和后序遍历 用递归和非递归方式,分别按照二叉树先序.中序和后序打印所有的节点.我们约定:先序遍历顺序 为根.左.右;中序遍历顺序为左.根.右;后序遍历顺序为左 ...
- 二叉树的遍历:先序 中序 后序遍历的递归与非递归实现及层序遍历
二叉树的定义:一种基本的数据结构,是一种每个节点的儿子数目都不多于2的树 树节点的定义如下: // 树(节点)定义 struct TreeNode {int data; // 值TreeNode* l ...
- 左神算法:分别用递归和非递归方式实现二叉树先序、中序和后序遍历(Java版)
本题来自左神<程序员代码面试指南>"分别用递归和非递归方式实现二叉树先序.中序和后序遍历"题目. 题目 用递归和非递归方式,分别按照二叉树先序.中序和后序打印所有的节点 ...
- 二叉树的层序遍历,前序遍历(递归,非递归),中序遍历(递归,非递归),后续遍历(递归,非递归)
文章目录 二叉树的层序遍历 前序遍历 递归版本 非递归版本 中序遍历 递归版本 非递归版本 后序遍历 递归版本 非递归版本 二叉树的层序遍历 void printTree(BinaryTree* ar ...
- 二叉树的先序,中序,后序,层次的递归及非递归遍历
昨天写数据结构关于二叉树的几种顺序的递归及非递归遍历的程序,后续遍历有点难.现在把程序给大家参考一下,有些思路参考自:http://www.cnblogs.com/dolphin0520/archiv ...
- 二叉树的先中后序递归和非递归遍历(数据结构作业)
一.设计思想 我创建二叉树是用的先序创建,其中用'#'代表空节点. 1.递归先序遍历 (1)如果当前节点为空节点(用'#'代表空节点),结束当前函数 (2)打印当前节点 (2)递归当前节点的左子树 ( ...
- C++实现二叉树 前、中、后序遍历(递归与非递归)非递归实现过程最简洁版本
本文并非我所写,是复制的该链接中的内容: 最近学习二叉树,想编程实现递归和非递归的实现方式: 递归的方式就不说了,因为大家的递归程序都一样:但是对于非递归的实现方式, 根据这几天的查阅资料已看到差不多 ...
- 由序列确定二叉树:前序序列和中序序列构造二叉树 后序序列和中序序列构造二叉树 层次遍历序列和中序遍历序列构造二叉树 代码实现(c语言)
下面三种序列可以唯一的构造唯一的一棵二叉树: 前序序列和中序序列构造二叉树 后序序列和中序序列构造二叉树 层次遍历序列和中序遍历序列构造二叉树 #include<stdio.h> #inc ...
- 二叉树,二叉树的归先序遍历,中序遍历,后序遍历,递归和非递归实现
二叉树,二叉树的归先序遍历,中序遍历,后序遍历,递归和非递归实现 提示:今天开始,系列二叉树的重磅基础知识和大厂高频面试题就要出炉了,咱们慢慢捋清楚! 文章目录 二叉树,二叉树的归先序遍历,中序遍历, ...
- 二叉树的前序、中序、后序、递归以及非递归遍历
定义节点: public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val = x; } } Lee ...
最新文章
- 手机的秘密--按几个键就知道
- 初学必读:61条面向对象设计的经验原则
- php 正则 尖括号,php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串...
- python小车行驶路线图_基于opencv-Python小车循线学习笔记
- 从入门到入土:基于C语言采用TCP协议实现通信功能的程序(仅有代码)
- LeetCode 63.不同路径II(动态规划)
- 数据结构入门(二)固定容量数组
- IT6302 电源后面板的 DB9 接口输出为 TTL 电平,您需要通过附件电平转换后才可连接到 PC 机的串口上
- stm32软件模拟i2c通讯读取lm75a温度
- 用 MeGUI 压制 DVDrip 入门
- 泛微OA 任意文件上传漏洞
- 华为hg8240光猫通过LAN网络接入实现路由器功能设置
- UVALive 4850 Installations——思维
- navigation Bar、toolBar、tabbar 区别
- zz:Android 内存优化测试
- 汉字转16进制 php,PHP实现中文汉字与16进制编码转换
- Linux内核的5个子系统
- linux怎么查看当前系统版本号,如何查看当前系统版本的版本号
- 远程调用:远程过程调用(RPC)和远程方法调用(RMI)
- win7怎么打开微软更新服务器地址,Win7旗舰版上的windows update服务无法启动
热门文章
- 东芝Q300 PS3110主控 开卡教程+软件(技术篇)
- 学习AngularJs:Directive指令用法
- MATAL角度弧度互换
- Task ‘bulid‘ not found in root project ‘cas‘. Some candidates are: ‘build‘.
- android测试命令,Android Instrument测试命令使用小记
- 2017年“达内杯”台州学院第十届大学生程序设计竞赛 非官方题解
- Android流媒体播放器
- 什么是CS、RS、ESD、EFT
- 论文研究结论怎么写?
- 少儿编程家长一定要看看这些值得参加的青少年专业权威赛考