zoukankan      html  css  js  c++  java
  • 顺序存储的二叉树

      顺序存储的二叉树通常只考虑完全二叉树

      存储的数组中,第n个元素的左子结点是2n+1,右子节点是2n+2,父节点是(n-1)/2。
      顺序存储的二叉树的遍历(把数组看成完全二叉树)

    package demo6;
    
    public class ArrayBinaryTree {
    
    	int[] data;
    	
    	public ArrayBinaryTree(int[] data) {
    		this.data=data;
    	}
    	
    	public void frontShow() {
    		frontShow(0);
    	}
    	
    	//前序遍历
    	public void frontShow(int index) {
    		if(data==null||data.length==0) {
    			return;
    		}
    		//先遍历当前节点的内容
    		System.out.println(data[index]);
    		//2*index+1:处理左子树
    		if(2*index+1<data.length) {
    			frontShow(2*index+1);
    		}
    		//2*index+2:处理右子树
    		if(2*index+2<data.length) {
    			frontShow(2*index+2);
    		}
    	}
    	
    }
    
    package demo6;
    
    public class TestArrayBinaryTree {
    
    	public static void main(String[] args) {
    		int[] data = new int[] {1,2,3,4,5,6,7};
    		ArrayBinaryTree tree = new ArrayBinaryTree(data);
    		//前序遍历
    		tree.frontShow();
    	}
    
    }
    
  • 相关阅读:
    lists 函数整理
    orddict 练习
    github 的使用
    wxListCtrl 例子 二
    Erlang eunit
    Erlang 中 Tuple 使用 以及 List 模块意外
    Erlang Json
    模块和包
    Mysql作为zabbix数据库ibdata1文件太高解决
    用户管理和数据库安全
  • 原文地址:https://www.cnblogs.com/lihao-bupt/p/13036351.html
Copyright © 2011-2022 走看看