1. 使用插入节点构造二项堆的代码如下:
2. 程序运行结果如下:
traverse binomial tree
--- ---
---0---
---2---
-1-|- -
---0---
---1---
---1---
-7-|-5-
---0---
---5---
---0---
- -|- -
---1---
---7---
---0---
- -|- -
traverse binomial tree after merging
--- ---
---2---
---0---
- -|-0-
--- ---
---0---
---3---
-3-|- -
---0---
---3---
---2---
-8-|-1-
---0---
---1---
---1---
-7-|-5-
---0---
---5---
---0---
- -|- -
---1---
---7---
---0---
- -|- -
---0---
---5---
---0---
- -|- -
---3---
---8---
---1---
-9-|-4-
---3---
---4---
---0---
- -|- -
---8---
---9---
---0---
- -|- -
--- ---
---0---
---3---
-3-|- -
---0---
---3---
---2---
-8-|-1-
---0---
---1---
---1---
-7-|-5-
---0---
---5---
---0---
- -|- -
---1---
---7---
---0---
- -|- -
---0---
---5---
---0---
- -|- -
---3---
---8---
---1---
-9-|-4-
---3---
---4---
---0---
- -|- -
---8---
---9---
---0---
- -|- -
extract minimum value 0
--- ---
---1---
---3---
-3-|- -
---1---
---3---
---2---
-8-|-2-
---1---
---2---
---1---
-5-|-7-
---1---
---7---
---0---
- -|- -
---2---
---5---
---0---
- -|- -
---1---
---7---
---0---
- -|- -
---3---
---8---
---1---
-9-|-4-
---3---
---4---
---0---
- -|- -
---8---
---9---
---0---
- -|- -
3. 测试结果二项堆的图示:
说明:一共9个测试数据,对应的二进制数据为1001,从上图可以看出,恰为B3和B0两个二项树。抽取最小值0后,得到的二项堆有8个数据,为B3。