CS146 编程项目 II:最小-最大堆实现

目标: 构建一个能够实现最小-最大堆(整数)的程序。

数据结构: 最小-最大堆

支持操作:

  • 构建堆: buildMinMaxHeap(int[] array) - 根据给定的整数数组构建一个最小-最大堆。
  • 获取最小值: peekMin() - 返回堆顶的最小值,不删除元素。
  • 获取最大值: peekMax() - 返回堆顶的最大值,不删除元素。
  • 删除最小值: deleteMin() - 删除并返回堆顶的最小值。
  • 删除最大值: deleteMax() - 删除并返回堆顶的最大值。
  • 插入元素: insert(int element) - 向堆中插入一个新的整数元素。
  • 打印堆: printMinMaxHeap() - 逐层打印当前堆的结构,每层一行。

输入格式:

程序将接受一个包含操作命令的文件作为输入,每行一个命令。

示例输入:

buildMinMaxHeap : 1, 4, 2, 3, 7, 6, 10
peekMin
peekMax
insert 25
insert 107
printMinMaxHeap

该输入文件将指示程序执行以下操作:

  1. 使用给定的元素序列 (1, 4, 2, 3, 7, 6, 10) 构建一个最小-最大堆。
  2. 打印最小值。
  3. 打印最大值。
  4. 插入元素 25。
  5. 插入元素 107。
  6. 打印最终生成的堆,以每层一行的方式展示。