用C#实现最小堆
标签:最小 nta contain mpi index sys 输出 sha EAP
using System;
///
/// 最小堆
///
class MinHeap where T : IComparable
{
private T[] container; // 存放堆元素的容器
private int capacity; // 堆的容量,最大可以放多少个元素
private int count; // 堆中已经存储的数据个数
///
/// 构造函数
///
///
public MinHeap(int _capacity)
{
capacity = _capacity;
container = new T[capacity + 1];
count = 0;
}
///
/// 向堆中添加元素
///
///
///
public bool AddItem(T item)
{
if (count >= capacity)
return false;
count++;
container[count] = item;
int index = count;
while (index > 1)
{
if (container[index].CompareTo(container[index / 2])
/// 获取最小的元素
///
///
public T GetMinItem()
{
if (count > 0)
return container[1];
else
return default;
}
///
/// 删除最小的元素(堆顶元素)
///
///
public bool DeteleMinItem()
{
if (count
/// 输出堆中元素
///
public void ShowHeap()
{
if (count
用C#实现最小堆
标签:最小 nta contain mpi index sys 输出 sha EAP
原文地址:https://www.cnblogs.com/dingzhaoliang/p/12148417.html
文章来自:
搜素材网的
编程语言模块,转载请注明文章出处。
文章标题:
用C#实现最小堆
文章链接:http://soscw.com/index.php/essay/44364.html
评论