递归实现树的三种遍历

本秂侑毒 提交于 2020-01-16 04:28:25

递归实现树的三种遍历(先序,中序,后序)

代码实现:

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);		
	}

}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!