简单的数据结构(总结)只涉及用数组或链表实现

来源:互联网 发布:网络销售模式有哪些 编辑:程序博客网 时间:2024/06/13 17:47

1、队列   用数组就可以实现

头指针 front,尾指针 rear

一般的队列只能从队首删去元素,队尾添加元素。

扩展:

(1)双端队列

队首队尾均可添加或删去元素。

(2)循环队列

头尾指针可以循环,front == rear时队空,front == rear+1时队满。

大小为n的数组只能存放有n-1个元素的队列。

2、栈 用数组就可以实现

只可以从栈顶添加或删去元素。

3、堆(也叫快速队列)是完全二叉树

分为最大堆和最小堆,以最小堆为例,父亲节点总是小于它的两个儿子节点,且最好把这两个兄弟节点里小的一个放在左儿子节点。

堆一般用来找一组数的最大值或最小值,其余值基本不用考虑。

用数组实现堆:若a[n]存父亲节点,则a[2*n+1]存左二子、a[2*n+2]存右儿子。

/*堆支持的基本操作

build: 建立一个空堆。

insert: 向堆中插入一个新元素。

update:将新元素提升使其符合堆的性质。

get:获取当前堆顶元素的值。

delete:删除堆顶元素。

heapify:使删除堆顶元素的堆再次成为堆。*/

4、未完待续


阅读全文
0 0
原创粉丝点击