递归实现树的三种遍历

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

代码实现:

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

}

发布了11 篇原创文章 · 获赞 3 · 访问量 116

猜你喜欢

转载自blog.csdn.net/weixin_43362002/article/details/103988115