1、小堆:

堆的构造,i>数组直接生成堆(向下调整),iii>插入创建堆(向上调整);

(1)、怎么实现一次调整?

找到最后一个非叶子结点,n/2-1;一直往下调整即可!

(2)堆排----->优先级队列

堆的删除,只能是堆顶元素,再拿最后一个元素补充上去。在向下做一次调整。形成新的堆结构(满足堆的性质),将删除的数字输出就是堆排。

小堆:根(父)小于左右结点;最小的数字先出;

大堆:根(父)大于左右结点;最大的数字先出; 因而,进行堆排是就是优先级队列!

2、线索二叉树的查找父结点图形解释

利用空指针指向前驱、后继结点


3、编程时const一些注意

(1)、在C++中,当我们传的是常量时,引用接收时,形参必须const类型接受,否则出错!

常量必须常引用接受。

例:int find(32); int find(const int &value);

(2)、typedef void *IP;

const IP m;怎么理解?

因为IP是数据类型,const和数据类型可以互换位置,

const IP m; <==> IP const m; 即void *const m; m是一个指针,其指向不能更改,其指向的空间数据可以更改!!!