2025-04-02 06:50:39 -04:00

32 lines
759 B
TypeScript

type ListNode<T, K> = {
key: K;
next: undefined | ListNode<T, K>;
value: T;
};
type RootNode<T, K> = {
next: undefined | ListNode<T, K>;
};
export function listGetNode<T, K>(
list: RootNode<T, K>,
key: ListNode<T, K>['key'],
isDelete?: boolean
): ListNode<T, K> | undefined;
export function listGet<T, K>(
objects: undefined | RootNode<T, K>,
key: ListNode<T, K>['key']
): T | undefined;
export function listSet<T, K>(
objects: RootNode<T, K>,
key: ListNode<T, K>['key'],
value: T
): void;
export function listHas<T, K>(
objects: undefined | RootNode<T, K>,
key: ListNode<T, K>['key']
): boolean;
export function listDelete<T, K>(
objects: undefined | RootNode<T, K>,
key: ListNode<T, K>['key']
): ListNode<T, K> | undefined;