| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- export declare class NumberAllocator {
- /**
- * NumberAllocator constructor.
- * The all numbers are set to vacant status.
- * Time Complexity O(1)
- * @constructor
- * @param {number} min - The maximum number of allocatable. The number must be integer.
- * @param {number} maxh - The minimum number of allocatable. The number must be integer.
- */
- constructor (min: number, max: number)
- /**
- * Get the first vacant number. The status of the number is not updated.
- * Time Complexity O(1)
- * @return {number} - The first vacant number. If all numbers are occupied, return null.
- * When alloc() is called then the same value will be allocated.
- */
- public firstVacant (): number | null
- /**
- * Allocate the first vacant number. The number become occupied status.
- * Time Complexity O(1)
- * @return {number} - The first vacant number. If all numbers are occupied, return null.
- */
- public alloc (): number | null
- /**
- * Use the number. The number become occupied status.
- * If the number has already been occupied, then return false.
- * Time Complexity O(logN) : N is the number of intervals (not numbers)
- * @param {number} num - The number to request use.
- * @return {Boolean} - If `num` was not occupied, then return true, otherwise return false.
- */
- public use (num: number): Boolean
- /**
- * Deallocate the number. The number become vacant status.
- * Time Complexity O(logN) : N is the number of intervals (not numbers)
- * @param {number} num - The number to deallocate. The number must be occupied status.
- * In other words, the number must be allocated by alloc() or occupied be use().
- */
- public free (num: number): void
- /**
- * Clear all occupied numbers.
- * The all numbers are set to vacant status.
- * Time Complexity O(1)
- */
- public clear (): void
- /**
- * Get the number of intervals. Interval is internal structure of this library.
- * This function is for debugging.
- * Time Complexity O(1)
- * @return {number} - The number of intervals.
- */
- public intervalCount (): number
- /**
- * Dump the internal structor of the library.
- * This function is for debugging.
- * Time Complexity O(N) : N is the number of intervals (not numbers)
- */
- dump (): void
- }
|