Java学习(十八):二叉树的三种递归遍历
2015-04-20 23:31
323 查看
二叉树的三种递归遍历:
public class StudentNode { private String name; private StudentNode leftNode; private StudentNode rightNode; public String getName() { return name; } public void setName(String name) { this.name = name; } public StudentNode getLeftNode() { return leftNode; } public void setLeftNode(StudentNode leftNode) { this.leftNode = leftNode; } public StudentNode getRightNode() { return rightNode; } public void setRightNode(StudentNode rightNode) { this.rightNode = rightNode; } public static void main(String[] args) { StudentNode root = new StudentNode(); root.setName("Name1"); StudentNode node2 = new StudentNode(); node2.setName("Name2"); StudentNode node3 = new StudentNode(); node3.setName("Name3"); StudentNode node4 = new StudentNode(); node4.setName("Name4"); StudentNode node5 = new StudentNode(); node5.setName("Name5"); StudentNode node6 = new StudentNode(); node6.setName("Name6"); StudentNode node7 = new StudentNode(); node7.setName("Name7"); // // ****root*** // ***/ **\*** // **2 ****5** // */ \ **/*** // 3 *4 **6*** // *******\*** // ********7** // root.setLeftNode(node2); root.setRightNode(node5); node2.setLeftNode(node3); node2.setRightNode(node4); node5.setLeftNode(node6); node6.setRightNode(node7); // 前序遍历1-2-3-4-5-6-7 rootFirst(root); // 中序遍历3-2-4-1-6-7-5 rootMiddle(root); // 后序遍历3-4-2-7-6-5-1 rootLast(root); } private static void rootFirst(StudentNode node) { System.out.println(node.getName()); if (null != node.getLeftNode()) { rootFirst(node.getLeftNode()); } if (null != node.getRightNode()) { rootFirst(node.getRightNode()); } } private static void rootMiddle(StudentNode node) { if (null != node.getLeftNode()) { rootMiddle(node.getLeftNode()); } System.out.println(node.getName()); if (null != node.getRightNode()) { rootMiddle(node.getRightNode()); } } private static void rootLast(StudentNode node) { if (null != node.getLeftNode()) { rootLast(node.getLeftNode()); } if (null != node.getRightNode()) { rootLast(node.getRightNode()); } System.out.println(node.getName()); } }
相关文章推荐
- 二叉树三种遍历算法递归和非递归实现
- 二叉树三种遍历递归及非递归实现
- 递归与非递归遍历二叉树(各三种)
- 二叉树三种非递归的遍历方式
- 二叉树的三种遍历的递归与非递归算法
- c语言数据结构中二叉树的先序、中序、后序三种递归遍历代码
- 二叉树三种遍历的非递归形式
- 二叉树的三种遍历方法(递归和非递归)(转载)
- 二叉树的三种遍历方式的递归实现和迭代实现
- 二叉树的三种遍历方式的循环和递归的实现方式
- 二叉树的三种遍历非递归实现
- 二叉树的三种遍历的方法(递归和非递归完整版)
- java使用递归,非递归方式实现二叉树的三种常见遍历方式
- 二叉树遍历(包括先序创建二叉树,递归非递归三种遍历)源码
- 二叉树的三种非递归遍历
- 二叉树的建立以及三种遍历方式的递归、非递归的实现
- java使用递归,非递归方式实现二叉树的三种常见遍历方式
- 二叉树的三种遍历方式:递归、栈、循环 分类: C/C++ 数据结构与算法 2015-06-21 09:47 269人阅读 评论(0) 收藏
- 数据结构(二叉树系列)先序创建三种遍历和求深度(递归实现)
- 二叉树的存储方式以及递归和非递归的三种遍历方式