using System; using System.Collections.Generic; namespace IFramework.Queue { /// /// 优先级队列接口 /// /// 队列元素 /// 紧急程度 public interface IPriorityQueue : IEnumerable where TPriority : IComparable { /// /// 将优先级节点入队,优先级值小的将会排在队列前面(越小越紧急) /// void Enqueue(TItem node, TPriority priority); /// /// 将队列的第一个元素从队列中出队 /// TItem Dequeue(); /// /// 清除队列里的所有元素 /// void Clear(); /// /// 判断队列中是否包含所给元素 /// /// 需要判断是否包含的元素 /// 如果包含则返回true,否则返回false bool Contains(TItem node); /// /// 在队列中移除匹配的第一个的所给元素 /// void Remove(TItem node); /// /// 更新节点元素的优先程度 /// void UpdatePriority(TItem node, TPriority priority); /// /// 队列的第一个元素 /// TItem first { get; } /// /// 元素数量 /// int count { get; } } }