堆初始化-二叉堆一般用数组来表示。例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2-icoding-void init_min_heap(PMinHeap pq, int
生活随笔
收集整理的這篇文章主要介紹了
堆初始化-二叉堆一般用数组来表示。例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2-icoding-void init_min_heap(PMinHeap pq, int
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
堆初始化
二叉堆一般用數(shù)組來(lái)表示。例如,根節(jié)點(diǎn)在數(shù)組中的位置是0,第n個(gè)位置的子節(jié)點(diǎn)分別在2n+1和 2n+2。?
因此,第0個(gè)位置的子節(jié)點(diǎn)在1和2,1的子節(jié)點(diǎn)在3和4。以此類推。這種存儲(chǔ)方式便于尋找父節(jié)點(diǎn)和子節(jié)點(diǎn)。
在二叉堆上可以進(jìn)行插入節(jié)點(diǎn)、刪除節(jié)點(diǎn)、取出值最小的節(jié)點(diǎn)、減小節(jié)點(diǎn)的值等基本操作。
“最小堆”的定義如下:
請(qǐng)實(shí)現(xiàn)最小堆的初始化函數(shù):
void init_min_heap(PMinHeap pq, int capacity);
其中 pq指向堆,capacity為堆元素?cái)?shù)組的初始化大小。
示例代碼:
#include <stdio.h> #include <stdlib.h> #include "minbinheap.h"void init_min_heap(PMinHeap pq, int capacity){//小根堆, 小的在上面 pq->capacity = capacity;pq->heap_size = 0;pq->heap_array = (PMinHeapNode)malloc(sizeof(MinHeapNode) * pq->capacity);return; }?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的堆初始化-二叉堆一般用数组来表示。例如,根节点在数组中的位置是0,第n个位置的子节点分别在2n+1和 2n+2-icoding-void init_min_heap(PMinHeap pq, int的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 蚂蚁粉治疗类风湿吗
- 下一篇: 尤瑞克林的作用与功效