数据结构 - 堆

最近写课设,需要用到 堆 这种数据结构。又重新写了一遍,写篇博客记录一下。优先队列讲 堆 之前,先讲一个堆的典型用处,就是 优先队列。优先队列 有两个操作,分别是入队和出队。和队列有一点想,但是并不是先进后出,而是优先度高的先出,例如下图中,实现了一个小数优先队列:对于优先队列,可以理解为内部会自动对队中的元素进行排序,永远保证对头的元素永远是优先度最高的,例如图中就是较小的数优先。对于出队操作就

- 阅读全文 -

纯 C 语言实现泛型编程

数据结构 的实验报告中需要用到泛型栈这种数据结构。可惜 C 语言里根本不存在 泛型 这种东西。不过我们可以使用一些技巧来达到类似于泛型的功能。void*对于类型来说,int* 表示指向 int 类型的指针, char* 表示指向 char 类型的指针。但请注意在 C 语言里,一个指针变量对应的总是内存里的一个位置,而类型只是告诉系统一次取多少字节而已。例如我们在 C 中的数组:char* cp =

- 阅读全文 -