[英]How are nodes in binary search tree stored in java? and other questions related
从数组的声明来看,你正在构建的是一个二叉堆——一种专门的基于树的数据结构,它通常存储在一个数组中。 与依赖显式引用的树结构不同,堆依赖于一种巧妙的索引方案,将树“打包”成线性数据结构。
Comparable
接口允许您构建一个可以存储任意类数据的堆,只要它们实现Comparable
接口即可。 这很有用,因为您可以构建使用数字、字符串或您自己类型的对象的可重用代码。
如果有多个节点级别,您如何知道下一步要转到哪个节点?
如果一个节点位于索引n
,它的两个子节点将位于索引 2n + 1 和 2n + 2 处。如果您位于索引k
并且想要跟随左子树,则设置k = 2*k+1
; 如果要遵循右子树,请设置k = 2*k+2
。 继续遵循相同的算法,直到在intHeap
数组中遇到null
元素。
你需要通过一个很好的教程。只是给你提个醒,节点会像这样
Class Node
{
int data;//ideally should be generic.
Node leftChild;
Node rightChild;
...
}
推荐您访问二叉搜索树-Java实现
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.