先决条件:二项式堆
二项树是多路树,通常存储在左子、右兄弟表示中,每个节点存储其度。二项式堆是按大小升序存储的二项式树的集合。堆中的根链表是二项式堆的根链表。根节点的度数随着遍历根列表而增加。
二项式堆中二叉树的数量可以用二项式堆中节点数的二进制值求出。本文重点介绍二项式堆的内存表示。
二项堆节点:
- 每个节点中的字段:
二项式堆中的每个节点都有 5 个字段:
- 指向父级的指针
- 钥匙
- 程度
- 指向孩子的指针(最左边的孩子)
- 指向紧邻其右侧的兄弟的指针
- 每个节点中的指针:
每个节点都有以下指针:
- 指向节点的直接父节点的父指针
- 指向节点第一个子节点的左指针
- 指向节点的下一个兄弟节点的右指针。
节点的类型及其表示:
- 堆中的单个节点:
- 父节点之间的子节点关系:
- 节点之间的兄弟关系:
全二项式堆的表示:
上面给出的二项式堆的每个节点的内存表示可以使用下图来说明:
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。