参考链接: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种遍历方式相关推荐

  1. 二叉树的四种遍历方式

    二叉树的四种遍历方式: 二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有的结点,使得每个结点被访问依次且仅被访问一次. 四种遍历方式分别为 ...

  2. c语言中二叉树中总结点,C语言二叉树的三种遍历方式的实现及原理

    二叉树遍历分为三种:前序.中序.后序,其中序遍历最为重要.为啥叫这个名字?是根据根节点的顺序命名的. 比如上图正常的一个满节点,A:根节点.B:左节点.C:右节点,前序顺序是ABC(根节点排最先,然后 ...

  3. 二叉树的三种遍历方式(递归、非递归和Morris遍历)

    二叉树的三种遍历方式(递归.非递归和Morris遍历) 原文:http://www.linuxidc.com/Linux/2015-08/122480.htm 二叉树遍历是二叉树的最基本的操作,其实现 ...

  4. 详解二叉树的三种遍历方式(递归、迭代、Morris算法)

    详解二叉树的三种遍历方式(递归.迭代.Morris算法) 最重要的事情写在前面:遍历顺序不一定就是操作顺序!!! 递归解法 首先,一颗二叉树它的递归序列是一定的,导致其前中后序不同的原因只不过是访问节 ...

  5. 二叉树的三种遍历方式:前序遍历、中序遍历和后序遍历

    二叉树的三种遍历方式:前序遍历.中序遍历和后序遍历 参考资料: 二叉树.前序遍历.中序遍历.后序遍历 - 蓝海人 - 博客园 (cnblogs.com) 二叉树 - LeetBook - 力扣(Lee ...

  6. c语言二叉树的遍历菜单系统,C语言二叉树的三种遍历方式的实现及原理

    C语言二叉树的三种遍历方式的实现及原理 发布时间:2020-10-03 19:43:57 来源:脚本之家 阅读:63 作者:看雪. 二叉树遍历分为三种:前序.中序.后序,其中序遍历最为重要.为啥叫这个 ...

  7. 二叉树的四种遍历方式——前序、中序、后序、层序遍历(递归+非递归实现)

    如果N代表根节点,L代表根节点的左子树,R代表根节点的右子树,则根据遍历根节点的先后次序有以下遍历方式: 1. NLR:前序遍历(Preorder Traversal 亦称先序遍历)--访问根结点-- ...

  8. python数据结构与算法:二叉树及三种遍历方式(先序遍历/中序遍历/后序遍历)

    树的实现采用queue的形式: 树的三种遍历方式(广度优先白能力法):先序遍历(根左右),中序遍历(左根右)以及后序遍历(左右根) ######################P6.4 数据结构### ...

  9. 二叉树的四种遍历方式(递归和非递归双重实现)

    写在前面:博主是一位普普通通的19届双非软工在读生,平时最大的爱好就是听听歌,逛逛B站.博主很喜欢的一句话花开堪折直须折,莫待无花空折枝:博主的理解是头一次为人,就应该做自己想做的事,做自己不后悔的事 ...

  10. 二叉树性质 四种遍历方式

    二叉树基本概念: 每个结点最多有两棵子树,左子树和右子树(有左右之分) 性质: 二叉树的第n层上最多有2^(n-1)个元素 高度为h的二叉树最多有2^h-1个结点 设一棵二叉树的叶子节点数为a,度为2 ...

最新文章

  1. Unknown lifecycle phase mvn
  2. Jewels and Stones
  3. php pdo 怎么循环,php – 在循环内绑定PDO语句的参数
  4. 90后中国程序员“黑吃黑”博彩网站,半年获利256万,判刑11年半
  5. 跨性别,你所不知道的事
  6. 基于Spring Security的认证授权_WEB授权_Spring Security OAuth2.0认证授权---springcloud工作笔记132
  7. python中文叫什么-python中文别名
  8. 关于 it行业未来 的个人判断
  9. 射频IC理论知识/参考书
  10. Qt交互界面设计探索
  11. 影响力在职场的重要性
  12. 阿里云,AWS和DigitalOcean:云服务比较
  13. 基于Java和Netty实现的联机版坦克大战游戏
  14. 《UNIX/LINUX系统管理I》课程学习总结
  15. ubuntu14.04 有道辞典 安装成功后 打不开 的 解决办法
  16. 163.net邮箱,让海外邮件收发畅通无阻
  17. 商务英语有计算机课吗,如何去学商务英语
  18. 程序员前辈归纳整理Python中的控制流语句的知识点(要记得收藏)
  19. 开始尝试贝茨视觉训练法
  20. python爬虫招聘网站(智联)

热门文章

  1. 解决更新到os x10.11后openssl头文件无法找到的问题
  2. HDU 2157 How many ways?? 矩阵
  3. Ubuntu下su:authentication failure的解决办法
  4. ecshop管理找不到index.php,前台出现找不到这样的目录,打不开某文件的提示
  5. java两个线程同时运行_Java实现的两个线程同时运行案例
  6. python分治算法_python算法实现-分治法
  7. http请求gmt时间_从Chrome源码看HTTP
  8. php mysql_query的的用法_PHP / MYSQL使用mysqli_query选择
  9. mysql是面向对象的语言吗_php一种面向对象的语言,那么什么是面向对象呢?
  10. 后台定时给页面发送数据_苹果CMS10全自动定时采集教程