二叉树的5种遍历方式
参考链接:https://blog.csdn.net/u010842515/article/details/68951783
一:前序遍历
递归解法:
public void preOrderTraverse(Node node){if(node == null) return ;System.out.println(node.data);preOrderTraverse(node.left);preOrderTraverse(node.right);}
非递归解法:
//非递归解法public void preOrder(Node node){Stack<Node> stack = new Stack<Node>();if(node == null) return;stack.push(node);while(!stack.empty()){Node n = stack.pop();System.out.println(n.data);if(n.right!=null) stack.push(n.right);if(n.left!=null) stack.push(n.left);}listTraverse(list);// return list; }}
二:中序遍历
递归解法:
public void inOrderTraverse(Node node){if(node == null) return;inOrderTraverse(node.left);System.out.println(node.data);inOrderTraverse(node.right);}
非递归解法:
//非递归public void inOrder(Node node){Stack<Node> stack = new Stack<Node>();while(node!= null || !stack.empty()){while(node != null){stack.push(node);node = node.left;}if(!stack.empty()){node = stack.pop();System.out.println(node.data);node = node.right;}}}
三:后序遍历
public void postOrderTraverse(Node node){if(node == null) return;postOrderTraverse(node.left);postOrderTraverse(node.right);System.out.println(node.data);}
四:深度优先遍历
就是前序遍历
五:广度优先遍历
//层次遍历public void cengOrder(Node node){if(node == null) return;Queue<Node> queue = new LinkedList<Node>();queue.add(node);while(!queue.isEmpty()){Node temp = queue.poll();System.out.println(temp.data);if(temp.left!=null) queue.add(temp.left);if(temp.right!=null) queue.add(temp.right);}}
转载于:https://www.cnblogs.com/yingpu/p/9271491.html
二叉树的5种遍历方式相关推荐
- 二叉树的四种遍历方式
二叉树的四种遍历方式: 二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次. 四种遍历方式分别为 ...
- c语言中二叉树中总结点,C语言二叉树的三种遍历方式的实现及原理
二叉树遍历分为三种:前序.中序.后序,其中序遍历最为重要.为啥叫这个名字?是根据根节点的顺序命名的. 比如上图正常的一个满节点,A:根节点.B:左节点.C:右节点,前序顺序是ABC(根节点排最先,然后 ...
- 二叉树的三种遍历方式(递归、非递归和Morris遍历)
二叉树的三种遍历方式(递归.非递归和Morris遍历) 原文:http://www.linuxidc.com/Linux/2015-08/122480.htm 二叉树遍历是二叉树的最基本的操作,其实现 ...
- 详解二叉树的三种遍历方式(递归、迭代、Morris算法)
详解二叉树的三种遍历方式(递归.迭代.Morris算法) 最重要的事情写在前面:遍历顺序不一定就是操作顺序!!! 递归解法 首先,一颗二叉树它的递归序列是一定的,导致其前中后序不同的原因只不过是访问节 ...
- 二叉树的三种遍历方式:前序遍历、中序遍历和后序遍历
二叉树的三种遍历方式:前序遍历.中序遍历和后序遍历 参考资料: 二叉树.前序遍历.中序遍历.后序遍历 - 蓝海人 - 博客园 (cnblogs.com) 二叉树 - LeetBook - 力扣(Lee ...
- c语言二叉树的遍历菜单系统,C语言二叉树的三种遍历方式的实现及原理
C语言二叉树的三种遍历方式的实现及原理 发布时间:2020-10-03 19:43:57 来源:脚本之家 阅读:63 作者:看雪. 二叉树遍历分为三种:前序.中序.后序,其中序遍历最为重要.为啥叫这个 ...
- 二叉树的四种遍历方式——前序、中序、后序、层序遍历(递归+非递归实现)
如果N代表根节点,L代表根节点的左子树,R代表根节点的右子树,则根据遍历根节点的先后次序有以下遍历方式: 1. NLR:前序遍历(Preorder Traversal 亦称先序遍历)--访问根结点-- ...
- python数据结构与算法:二叉树及三种遍历方式(先序遍历/中序遍历/后序遍历)
树的实现采用queue的形式: 树的三种遍历方式(广度优先白能力法):先序遍历(根左右),中序遍历(左根右)以及后序遍历(左右根) ######################P6.4 数据结构### ...
- 二叉树的四种遍历方式(递归和非递归双重实现)
写在前面:博主是一位普普通通的19届双非软工在读生,平时最大的爱好就是听听歌,逛逛B站.博主很喜欢的一句话花开堪折直须折,莫待无花空折枝:博主的理解是头一次为人,就应该做自己想做的事,做自己不后悔的事 ...
- 二叉树性质 四种遍历方式
二叉树基本概念: 每个结点最多有两棵子树,左子树和右子树(有左右之分) 性质: 二叉树的第n层上最多有2^(n-1)个元素 高度为h的二叉树最多有2^h-1个结点 设一棵二叉树的叶子节点数为a,度为2 ...
最新文章
- Unknown lifecycle phase mvn
- Jewels and Stones
- php pdo 怎么循环,php – 在循环内绑定PDO语句的参数
- 90后中国程序员“黑吃黑”博彩网站,半年获利256万,判刑11年半
- 跨性别,你所不知道的事
- 基于Spring Security的认证授权_WEB授权_Spring Security OAuth2.0认证授权---springcloud工作笔记132
- python中文叫什么-python中文别名
- 关于 it行业未来 的个人判断
- 射频IC理论知识/参考书
- Qt交互界面设计探索
- 影响力在职场的重要性
- 阿里云,AWS和DigitalOcean:云服务比较
- 基于Java和Netty实现的联机版坦克大战游戏
- 《UNIX/LINUX系统管理I》课程学习总结
- ubuntu14.04 有道辞典 安装成功后 打不开 的 解决办法
- 163.net邮箱,让海外邮件收发畅通无阻
- 商务英语有计算机课吗,如何去学商务英语
- 程序员前辈归纳整理Python中的控制流语句的知识点(要记得收藏)
- 开始尝试贝茨视觉训练法
- python爬虫招聘网站(智联)
热门文章
- 解决更新到os x10.11后openssl头文件无法找到的问题
- HDU 2157 How many ways?? 矩阵
- Ubuntu下su:authentication failure的解决办法
- ecshop管理找不到index.php,前台出现找不到这样的目录,打不开某文件的提示
- java两个线程同时运行_Java实现的两个线程同时运行案例
- python分治算法_python算法实现-分治法
- http请求gmt时间_从Chrome源码看HTTP
- php mysql_query的的用法_PHP / MYSQL使用mysqli_query选择
- mysql是面向对象的语言吗_php一种面向对象的语言,那么什么是面向对象呢?
- 后台定时给页面发送数据_苹果CMS10全自动定时采集教程