递归实现树的三种遍历(先序,中序,后序)
代码实现:
public class Demo09
{
//先序遍历
public static void preOrder(int[] arr,int i)
{
if (i>=arr.length)
return;
System.out.print(arr[i]+" ");//先输出根节点
preOrder(arr, i*2+1);//输出左子树
preOrder(arr, i*2+2);//输出右子树
}
//中序遍历
public static void inOrder(int[] arr,int i)
{
if(i>=arr.length)
return;
inOrder(arr, i*2+1);//递归输出左子树
System.out.print(arr[i]+" ");//输出根节点
inOrder(arr, i*2+2);//递归输出右子树
}
//后序遍历
public static void postOrder(int[] arr,int i)
{
if(i>=arr.length)
return;
postOrder(arr, i*2+1);//递归输出左子树
postOrder(arr, i*2+2);//递归输出右子树
System.out.print(arr[i]+" ");//输出根节点
}
public static void main(String[] args)
{
int[] arr = {1,2,3,4,5,6,7};
System.out.println("先序遍历结果如下");
preOrder(arr, 0);
System.out.println();
System.out.println("中序遍历结果如下");
inOrder(arr, 0);
System.out.println();
System.out.println("后序遍历结果如下");
postOrder(arr, 0);
}
}
来源:CSDN
作者:Sparky*
链接:https://blog.csdn.net/weixin_43362002/article/details/103988115