IFixedSizePriorityQueue.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. using System;
  2. namespace IFramework.Queue
  3. {
  4. /// <summary>
  5. /// 可变大小的优先级队列
  6. /// </summary>
  7. /// <typeparam name="TItem">队列元素</typeparam>
  8. /// <typeparam name="TPriority">紧急程度</typeparam>
  9. internal interface IFixedSizePriorityQueue<TItem, in TPriority> : IPriorityQueue<TItem, TPriority> where TPriority : IComparable<TPriority>
  10. {
  11. /// <summary>
  12. /// 重新设置队列的大小,使其可以容纳更多的节点,当前的所有节点都会保留<br />
  13. /// 如果试图将队列大小设置成比当前队列中的数量小时,会导致未定义的操作
  14. /// </summary>
  15. /// <param name="maxNodes">要设置的最大数量</param>
  16. void Resize(int maxNodes);
  17. /// <summary>
  18. /// 队列中可以入队的最大数量<br />
  19. /// 如果入队数量超过队列的大小(Count == MaxSize时Enqueue()),会导致未定义的操作
  20. /// </summary>
  21. int capcity { get; }
  22. /// <summary>
  23. /// 默认情况下在队列中的元素不能添加到另一个队列<br />
  24. /// 如果需要这么做,则在添加到另一个队列前调用当前队列的此方法
  25. /// </summary>
  26. void ResetNode(TItem node);
  27. }
  28. }