【发布时间】:2023-01-11 14:07:51
【问题描述】:
二叉堆可以用数组表示,数组是一种线性数据结构,而树是一种非线性数据结构。这是否意味着使用数组表示的二叉堆不再是一棵树?
【问题讨论】:
-
不,二叉堆始终是一棵树,无论您如何存储它。
-
如何?我知道树是非线性数据结构,使用数组制作树意味着使用线性 ds 制作非线性 ds。
-
请参阅此处以获得有用的解释:geeksforgeeks.org/binary-heap 特别是 geeksforgeeks.org/array-representation-of-binary-heap 即使在数组形式中,顺序/结构也始终很明显,如链接站点“用于实现数组表示的遍历方法是 Level Order”中所述,“
Arr[(i-1)/2]返回父节点”,“Arr[(2*i)+1]返回左子节点”,“Arr[(2*i)+2]返回右子节点”
标签: java data-structures binary-heap