zoukankan      html  css  js  c++  java
  • java使用顺序数组实现二叉树

    顺序数组实现二叉树

    实现原理

    对于下标为index的节点其满足

    1.左孩子节点的下标为2index+1
    2.右孩子节点的下标为2index+2

    代码实现

    package tree;
    
    public class ArrayBinaryTree {
    	private int[] arr;
    	
    	public ArrayBinaryTree(int[] arr)
    	{
    		this.arr=arr;
    	}
    	
    	public void preOrder(int index)
    	{
    		if(arr==null||arr.length==0)
    		{
    			System.out.println("数组为空,不可以按照二叉树的前序遍历");
    		}
    		System.out.println(arr[index]);
    		//向左进行前序遍历
    		if(index*2+1<arr.length)//防止数组下标越界
    		{
    			preOrder(2*index+1);
    		}
    		//向右递归
    		if(index*2+2<arr.length)
    		{
    			preOrder(2*index+2);
    		}
    		
    	}
    	
    	public void infixOrder(int index)
    	{
    		if(arr==null||arr.length==0)
    		{
    			System.out.println("数组为空,不可以按照二叉树来进行遍历~");
    		}
    		if(2*index+1<arr.length)
    		{
    			infixOrder(2*index+1);
    		}
    		System.out.println(arr[index]);
    		if(2*index+2<arr.length)
    		{
    			infixOrder(2*index+2);
    		}
    		
    	}
    	
    	
    	public void postOrder(int index)
    	{
    		if(arr==null||arr.length==0)
    		{
    			System.out.println("数组为空,不可以按照二叉树来进行遍历~");
    		}
    		if(2*index+1<arr.length)
    		{
    			infixOrder(2*index+1);
    		}
    		System.out.println(arr[index]);
    		if(2*index+2<arr.length)
    		{
    			infixOrder(2*index+2);
    		}
    		System.out.println(arr[index]);
    	}
    	
    }
    
    package tree;
    
    public class ArrayBinaryTreeDemo {
    	public static void main(String[] args) {
    		int[] arr= {1,2,3,4,5,6,7,};
    		ArrayBinaryTree arrBinaryTree=new ArrayBinaryTree(arr);
    		arrBinaryTree.preOrder(0);
    		arrBinaryTree.infixOrder(0);
    		arrBinaryTree.postOrder(0);
    		
    	}
    }
    
    

    主要应用

    • 堆排序
  • 相关阅读:
    window10-jmeter安装
    软件开发模型
    软件测试的原则和流程
    手机APP测试
    优秀的软件测试工程师
    自动化测试
    测试用例
    软件测试功能分类
    ios-prefix文件最全
    催收策略及催收评分卡搭建
  • 原文地址:https://www.cnblogs.com/mengxiaoleng/p/11837703.html
Copyright © 2011-2022 走看看