今天突然想到了给最小堆添加值的方法了.. #include <limits.h> /*在heap_insert中完成对key[]中的插入,key[]必须保证不满*/ int heap_insert(struct Heap* h, int key[], int k) { if (h->n >= MAX_NUM) return 0; key[h->n] = INT_MAX; h->h[h->n] = h->n; h->m[h->n] = h->n; h->n++; heap_decreaseKey(h, key, h->n - 1, k); return 1; } 其他的heap操作见http://blog.youkuaiyun.com/zheda3072211120/archive/2011/06/10/6536782.aspx