zoukankan      html  css  js  c++  java
  • 相关内部接口

    最小堆的接口 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();
    }
    
  • 相关阅读:
    PouchDB:一款受CouchDB启发的离线Web数据库
    如何使用JPA注解映射枚举类型
    重新排列参数
    sql不同数据处理方式完成同一处理结果对日志增长的影响
    那些让我念念不忘的 Firefox 扩展
    Linux现可运行于Windows Azure上
    Vector Fabrics推出多核软件优化工具Pareon
    分解公式 sql
    sql树形数据生成xml
    Microsoft .NET终于提供了一个通用的Zip库
  • 原文地址:https://www.cnblogs.com/wesson2019-blog/p/14677218.html
Copyright © 2011-2022 走看看