• 相关内部接口


    最小堆的接口 IMinHeap

    /// <summary>
    /// 最小堆的接口
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface IMinHeap<T> : IHeapBase<T> where T : IComparable<T>
    {
        /// <summary>
        /// 删除最小项
        /// </summary>
        void RemoveMin();
        /// <summary>
        /// 提取最小项
        /// </summary>
        /// <returns></returns>
        T ExtractMin();
        /// <summary>
        /// 转换成最大堆
        /// </summary>
        /// <returns></returns>
        IMaxHeap<T> ToMaxHeap();
    }
    

    具体实现BinaryMinHeap

    最大堆的接口 IMaxHeap

    /// <summary>
    /// 最大堆的接口
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface IMaxHeap<T> IHeapBase<T> where T : IComparable<T>
    {
        /// <summary>
        /// 删除最大项
        /// </summary>
        void RemoveMax();
        /// <summary>
        /// 提取最大项
        /// </summary>
        /// <returns></returns>
        T ExtractMax();
        /// <summary>
        /// 转换成最小堆
        /// </summary>
        /// <returns></returns>
        IMinHeap<T> ToMinHeap();
    }
    

    具体实现BinaryMaxHeap

    堆的基本接口 IHeapBase

    /// <summary>
    /// 堆的基本接口
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface IHeapBase<T>
    {
        /// <summary>
        /// 堆的项数
        /// </summary>
        int Count { get; }
        /// <summary>
        /// 堆是否空,ture空,false不空
        /// </summary>
        bool IsEmpty { get; }
        /// <summary>
        /// 堆的初始化
        /// </summary>
        /// <param name="collection"></param>
        void Initialize(IList<T> collection);
        /// <summary>
        /// 堆中添加项
        /// </summary>
        /// <param name="heapKey"></param>
        void Add(T heapKey);
        /// <summary>
        /// 查看堆的首项
        /// </summary>
        /// <returns></returns>
        T Peek();
        /// <summary>
        /// 清空堆
        /// </summary>
        void Clear();
        /// <summary>
        /// 重建堆
        /// </summary>
        void RebuildHeap();
        /// <summary>
        /// 转换成数组形式
        /// </summary>
        /// <returns></returns>
        T[] ToArray();
        /// <summary>
        /// 转换成列表形式
        /// </summary>
        /// <returns></returns>
        List<T> ToList();
    }
    
  • 相关阅读:
    java各种框架的比较,分析
    HTTP请求响应码
    jersey获取各个参数的总结
    web项目中各种路径的获取
    netsh学习
    解决sqlplus: command not found
    win10 提速
    解决win10 64位系统可用2.99g
    Windows10关闭SearchUI.exe进程的方法
    msf payload
  • 原文地址:https://www.cnblogs.com/wesson2019-blog/p/14677218.html
Copyright © 2020-2023  润新知