我正在尝试在C中实现最小堆,但我正在努力使用筛选功能。
到目前为止我所拥有的是:
######### #####
# .# # #
# ###.# ##### #
# #...# #
# .######### #
###.# #
# #.# #########
#... # #
#.##### ##### #
#.....# #
#####.#########
我对三元条件感到抱歉,我知道大多数人不喜欢他们,但这是针对学校的,他们强迫我们使用三元。
这是目前的segfaulting,我不知道为什么。我试过valgrind,但它并没有真正帮助... 如果有人有一个非常好的想法。
答案 0 :(得分:0)
我刚刚更换了
if (!h->nodes[cur * 2] && !h->nodes[cur * 2 + 1])
return ;
通过
if (cur * 2 > h->size)
return;
一切正常。