本文主要是介绍二叉树的先、中、后序遍历的递归和非递归实现及广度优先遍历、深度优先遍历及其高度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
// 构造二叉树1/ \2 3/ / \4 5 7\ /6 8
一、二叉树的前、中、后序遍历(递归与非递归实现)
二、二叉树的广度、深度优先遍历
三、求二叉树的高度
import java.util.*;
//二叉树的深度和广度遍历
public class TreeSearch{//二叉树节点的定义public static class BinaryTreeNode{int value;BinaryTreeNode left;BinaryTreeNode right;//构造函数public BinaryTreeNode(int v){this.value=v;}//第二个构造函数public BinaryTreeNode(int v,BinaryTreeNode left,BinaryTreeNode right){super();this.value=v;this.left=left;this.right=left;}}//访问二叉树的节点public static void visit(BinaryTreeNode node){System.out.print(node.value+" ");}
//******************************************************** //递归实现二叉树的先,中,后序遍历public static void preOrder(BinaryTreeNode node){if(node!=null){visit(node);preOrder(node.left);preOrder(node.right);}}public static void inOrder(BinaryTreeNode node){if(node!=null){inOrder(node.left);visit(node);inOrder(node.right);}}public static void postOrder(BinaryTreeNode node){if(node!=null){postOrder(node.left);postOrder(node.right);visit(node);}}//*************非递归实现二叉树的先
这篇关于二叉树的先、中、后序遍历的递归和非递归实现及广度优先遍历、深度优先遍历及其高度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!