一、生成小根堆
1、随机生成一棵完全二叉树
2、调整结点56及其子树
3、调整结点77及其子树
4、调整结点45及其子树
5、调整结点18及其子树
6、调整结点29及其子树
(1)调整几点29及其左、右儿子
(2)调整结点29及其左、右儿子
二、堆排序
1、取出当前最小元素3
(1)掐尖
(2)将结点65放到堆顶
(3)交换结点65与结点7
(4)交换节点65与结点29
2、取出当前最小元素7
(1)掐尖
(2)将结点30放到堆顶
(3)交换结点30与结点18
(4)交换结点30与结点29’
(5)已形成一个新的堆,不用再交换
3、取出当前最小元素18
(1)掐尖
(2)将结点77放到堆顶
(3)交换结点77与结点29’
(4)交换结点77与结点30
说明:以上图形为graphviz软件所作。