UNPKG

@sridhar-mani/dsa-js

Version:

A full-fledged data structure library with linked list and double linked list implementation

36 lines (28 loc) 962 B
export default class ComparerFunc<T> { private readonly compare: (a: T, b: T) => number; constructor(compare?: (a: T, b: T) => number) { this.compare = compare || ComparerFunc.defaultCompareFunc; } private static defaultCompareFunc<T>(a: T, b: T): number { if (a === b) return 0; return a < b ? -1 : 1; } public equal(a: T, b: T): boolean { return this.compare(a, b) === 0; } public lessThan(a: T, b: T): boolean { return this.compare(a, b) < 0; } public greaterThan(a: T, b: T): boolean { return this.compare(a, b) > 0; } public lessThanOrEqual(a: T, b: T): boolean { return this.compare(a, b) <= 0; } public greaterThanOrEqual(a: T, b: T): boolean { return this.compare(a, b) >= 0; } public reverseCom():ComparerFunc<T>{ return new ComparerFunc<T>((a,b)=>this.compare(b,a)) } }