销毁堆,清理堆,统计堆节点个数
1销毁堆
销毁堆时,不仅要将堆中所有元素清空,还需将表示大小堆的函数指针置空。
211 //销毁堆
212 int HeapDestroy(Heap* heap)
213 {
214 if(heap==NULL)
215 {
216 //已经销毁
217 return 0 ;
218 }
219 heap->size=0;
220 heap->cmp=NULL;
221 return 1;
222 }
2清理堆
清空堆时,只需将堆中的所有元素删除,即将size置为0,
201 void HeapClear(Heap* heap)
202 {
203 if(heap==NULL)
204 {
205 return ;
206 }
207 heap->size=0;
208 return ;
209 }
3统计堆节点个数
存放堆的数组实际元素个数size即为堆中的结点个数。
225 //统计堆中节点个数
226 size_t HeapSize(Heap* heap)
227 {
228 if(heap==NULL)
229 {
230 //非法输入
231 return (size_t)-1;
232 }
233 return heap->size;
234 }