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
{
preOrder(2*index+1);
}
//向右遞歸
if(index*2+2
{
preOrder(2*index+2);
}
}
public void infixOrder(int index)
{
if(arr==null||arr.length==0)
{
System.out.println("數組為空,不可以按照二叉樹來進行遍歷~");
}
if(2*index+1
{
infixOrder(2*index+1);
}
System.out.println(arr[index]);
if(2*index+2
{
infixOrder(2*index+2);
}
}
public void postOrder(int index)
{
if(arr==null||arr.length==0)
{
System.out.println("數組為空,不可以按照二叉樹來進行遍歷~");
}
if(2*index+1
{
infixOrder(2*index+1);
}
System.out.println(arr[index]);
if(2*index+2
{
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);
}
}
主要應用
堆排序
總結
以上是生活随笔為你收集整理的java 数组 树_java使用顺序数组实现二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML超链接
- 下一篇: 新华字典java_新华字典查询示例代码