本例中树结构、节点权如下图所示
- 顺序存储是指将二叉树存储在一个数组中,通过存储元素的下标反映元素之间的父子关系。任何一个二叉树都可以转换为数组,同理,任何一个数组都可以转换为二叉树。
- 顺序存储的二叉树通常只考虑完全二叉树(满二叉树其实也是一个完全二叉树)
- 第N个元素的左子节点为:2*N+1
- 第N个元素的右子节点为:2*N+1
- 第N个元素的父节点为:(N-1)/ 2(整数相除得整数)
1. Kotlin 中顺序存储的二叉树如何创建
1.1 新建顺序存储的二叉树 Bean:ArrayBianryTree.kt
/**
* @des 顺序存储二叉树Bean
* @author liyongli 20190220
*
* @param data 准备遍历的数组,不可为null
* */
data class ArrayBianryTree(var data