UNPKG

pisces-data-structure

Version:

43 lines (34 loc) 1.78 kB
/** * 队列结构相关接口/类型 */ import { IList } from "./IList"; // 单向队列接口 interface IQueue<T> extends IList<T> { enqueue(element: T): void; // 向单向队列尾部添加一个(或多个)新的项 dequeue(): T | undefined; // 移除单向队列的第一(即排在单向队列最前端)项,并返回被移除的元素 front(): T | undefined; // 返回单向队列中第一个元素,单向队列不做任何变动(不移除元素,只返回元素信息) peek(): T | undefined; // 返回单向队列中第一个元素,单向队列不做任何变动(不移除元素,只返回元素信息) }; // 双端队列接口 interface IDEQueue<T> extends IQueue<T> { enqueueFront(element: T): void; // 向双端队列头部添加一个(或多个)新的项 dequeueBack(): T | undefined; // 移除双端队列的最后一项(即排在双端队列最后端的项),并返回被移除的元素 }; // 优先级队列节点接口 interface IPriorityNode<T> { value: T; // 优先级队列中保存的值 priority: number; // 优先级 valueOf(): number; // 优先级节点进行比较时使用的属性 } // 优先级队列接口 interface IPriorityQueue<T> extends IList<T> { enqueue(element: T, priority: number): void; // 向优先级队列尾部添加一个(或多个)新的项 dequeue(): T | undefined; // 移除优先级队列的第一项(即排在优先级队列最前端的项),并返回被移除的元素 peek(): T | undefined; // 返回优先级队列中第一个元素,单向队列不做任何变动(不移除元素,只返回元素信息) } export { IQueue, IDEQueue, IPriorityNode, IPriorityQueue, };