Data structures and algorithms in TypeScript