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();
    }
    
  • 相关阅读:
    CCI_Q1.5
    CCI_Q1.4
    js 记录一次日期转换
    列表注册自定义鼠标右键事件
    jquery点击页面其他位置隐藏div
    C#一句话判断两个List<T>是否相等
    使用Js进行linq处理
    记录一次DataTable排序的问题
    JavaScript模板引擎Handlebars
    Redis学习笔记
  • 原文地址:https://www.cnblogs.com/wesson2019-blog/p/14677218.html
Copyright © 2011-2022 走看看