二叉树的遍历(1)--先序遍历,中序遍历,后序遍历
2016-08-30 18:33
393 查看
对于二叉树
代码结构:
一个节点包含左子节点,右子节点
一般情况下我们使用递归算法对二叉树进行遍历:先序遍历,中序遍历,后序遍历
先序遍历
分析如下:
1.首先输出首节点12的值
2.一直递归对左右子节点进行相同操作,总是完成左子节点的遍历再进行右子节点的遍历
3.重复2直至节点为空,然后一步一步向上返回。
先序遍历:12 24 40 56 55 50 35 66 70
中序遍历
中序遍历:56 40 55 24 50 12 66 35 70
后续遍历
后序遍历:56 55 40 50 24 66 70 35 12
代码结构:
public static class Node { public int value; public Node left; public Node right; public Node(int data) { this.value = data; } }
一个节点包含左子节点,右子节点
一般情况下我们使用递归算法对二叉树进行遍历:先序遍历,中序遍历,后序遍历
先序遍历
public static void preOrderRecur(Node head) { if (head == null) { return; } System.out.print(head.value + " "); preOrderRecur(head.left); preOrderRecur(head.right); }
分析如下:
1.首先输出首节点12的值
2.一直递归对左右子节点进行相同操作,总是完成左子节点的遍历再进行右子节点的遍历
3.重复2直至节点为空,然后一步一步向上返回。
先序遍历:12 24 40 56 55 50 35 66 70
中序遍历
public static void inOrderRecur(Node head) { if (head == null) { return; } inOrderRecur(head.left); System.out.print(head.value + " "); inOrderRecur(head.right); }
中序遍历:56 40 55 24 50 12 66 35 70
后续遍历
public static void posOrderRecur(Node head) { if (head == null) { return; } posOrderRecur(head.left); posOrderRecur(head.right); System.out.print(head.value + " "); }
后序遍历:56 55 40 50 24 66 70 35 12
相关文章推荐
- 二叉树3(构造二叉树、先序遍历、中序遍历、后序遍历)
- 【郝斌数据结构自学笔记】66-69_森林的存储_二叉树的先序遍历_二叉树的中序遍历【中间访问根节点】_二叉树的后序遍历【最后访问根节点】
- 已知二叉树先序遍历,中序遍历创建二叉树并输出后序遍历
- 先序遍历、中序遍历、后序遍历(二叉树)
- 六、树和二叉树--(2)二叉树的先序遍历、中序遍历、后序遍历
- 组合模式实现二叉树先序遍历,中序遍历和后序遍历
- 二叉树BiTree的先序遍历.中序遍历.后序遍历.结点数.叶子结点数和数的高度
- 已知一棵二叉树的中序遍历和后序遍历,求二叉树的先序遍历
- 二叉树的先序遍历、中序遍历、后序遍历
- C# 二叉树的综合操作(一):查找、插入、最大(小)值、先序遍历、后序遍历及中序遍历
- 已知二叉树先序遍历中序遍历求后序遍历
- 给定二叉树的先序遍历中序遍历,求后序遍历
- 创建一个二叉树(先序遍历、中序遍历、后序遍历)
- c++实现二叉树的先序遍历,中序遍历,后序遍历(递归方法)及运行实例结果
- c++实现二叉树的先序遍历,中序遍历,后序遍历(递归方法)及运行实例结果
- java版的二叉树的先序遍历、中序遍历以及后序遍历(递归以及非递归方式)
- 二叉树的创建,先序遍历,中序遍历,后序遍历
- 小小c#算法题 - 11 - 二叉树的构造及先序遍历、中序遍历、后序遍历
- c++实现二叉树的先序遍历,中序遍历,后序遍历(递归方法)及运行实例结果
- 二叉树创建、先序遍历、中序遍历、后序遍历、树深度