链式结构又分为二叉链和三叉链,当前我们使用的是二叉链
3.二叉树的顺序结构及实现
3.1二叉树的顺序结构
普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。...堆中某个节点的值总是不大于或不小于其父节点的值
堆总是一棵完全二叉树
我们来做一道选择题试一试:
下列关键字序列为堆的是:()
A 100,60,70,50,32,65
B 60,70,65,50,32,100...;
php->size = php->capacity = 0;
}
3.4堆的应用
3.4.1 堆排序
堆排序即利用堆的思想来进行排序,总共分为两个步骤:
建堆
升序:建大堆(如果建小堆的话,小堆不一定有序...就算是选出来了之后,结点之间的关系就全乱了,无法继续利用优势,只能重新建堆O(N),选出次小的数据,效率太低了)建大堆直接交换堆顶和最后一个,进行向下调整即可
降序:建小堆
堆利用堆删除思想来进行排序...建堆和堆删除中都用到了向下调整,因此掌握了向下调整,就可以完成堆排序。