用C#实现最小堆

2021-01-20 04:11

阅读:570

标签:最小   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


评论


亲,登录后才可以留言!