gpt4 book ai didi

c++ - 关于C++中的make_heap算法

转载 作者:行者123 更新时间:2023-11-27 23:30:45 25 4
gpt4 key购买 nike

http://www.cplusplus.com/reference/algorithm/make_heap/

在此链接中。它说:

Internally, a heap is a tree where each node links to values not greater than its own value. In heaps generated by make_heap, the specific position of an element in the tree rather than being determined by memory-consuming links is determined by its absolute position in the sequence, with *first being always the highest value in the heap.

about“由它在序列中的绝对位置决定”。我在这里混淆了。它还说“堆是一棵树,其中每个节点链接到不大于其自身值的值”

这两句话矛盾吗?在这里很困惑。C++ 中堆的确切树是什么?

希望有好心人帮帮我非常感谢

最佳答案

这说明堆具有典型的树状结构,其中每个“父”节点都大于或等于“子”节点的值(“...每个节点链接到的值不大于比它自己的值(value)...”)。

然后它继续说,它不使用链接(即指针,比如说,结构(就像您将用于链表的那样)),而是使用就地内存(也称为数组 - )。 ..由其在序列中的绝对位置确定...”)。

*first 是堆上的第一个元素(或最大/最小,取决于比较器函数),并且始终位于数组的第 [0] 个索引处。对于每个索引 i, child 位于 [2*i+1] 和 [2*i+2]。

希望这对您有所帮助。

关于c++ - 关于C++中的make_heap算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5603310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com