Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/AvraamMavridis/Algorithms-Data-Structures-in-Typescript


https://github.com/AvraamMavridis/Algorithms-Data-Structures-in-Typescript

algorithms data-structures design-patterns exercises javascript questions typescript

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

        

# Algorithms, Data Structures and Design Patterns in Typescript.

### Design Patterns

- [Singleton](patterns/Singleton.md)
- [Factory](patterns/Factory.md)
- [Builder](patterns/Builder.md)

### Algorithms & Data Structures

- [Binary Tree](algorithms/binarytree.md)
- [Insertion Sort](algorithms/insertionSort.md)
- [Selection Sort](algorithms/selectionSort.md)
- [Merge Sort](algorithms/mergeSort.md)
- [Count Sort](algorithms/countSort.md)
- [Quick Sort](algorithms/quickSort.md) and [Quick Sort using TypeScript Generics](algorithms/quickSort_generic.md)
- [Radix Sort](algorithms/radixSort.md)
- [BFS - DFS](algorithms/bfs-dfs.md)
- [Tree Traversals: In-Order, Pre-Order, Post-Order](algorithms/tree_traversal.md)

### Questions

- [Questions](questions.md)

### Exercises

- [1. Apple stocks](exercises/exercise1.md)
- [2. Simple range](exercises/exercise2.md)
- [3. String paths to object](exercises/exercise3.md)
- [4. Max difference](exercises/exercise4.md)
- [5. Deep Assignment](exercises/exercise5.md)
- [6. Ranking Poker Hands](exercises/exercise6.md)
- [7. Identical Node in symetrical DOM trees](exercises/exercise7.md)
- [8. Implement debounce](exercises/exercise8.md)
- [9. How many are smaller than me?](exercises/exercise9.md)
- [10. Unique chars](exercises/exercise10.md)
- [11. String permutation check](exercises/exercise11.md)
- [12. Compress string](exercises/exercise12.md)
- [13. MxN matrix transform](exercises/exercise13.md)
- [14. Remove duplicates from linked list](exercises/exercise14.md)
- [15. Partition a linked list](exercises/exercise15.md)
- [16. Sum numbers of two linked lists and create a new one](exercises/exercise16.md)
- [17. Stack with push, pop, getMin that have complexity 0(1)](exercises/exercise17.md)
- [18. Set of stacks](exercises/exercise18.md)
- [19. Queue using two Stacks](exercises/exercise19.md)
- [20. Sorted Stack](exercises/exercise20.md)
- [21. Animal Shelter Queue](exercises/exercise21.md)
- [22. Balanced Tree](exercises/exercise22.md)
- [23. Numbers with a Given Sum](exercises/exercise23.md)
- [24. Exponential](exercises/exercise24.md)
- [25. Palindrome](exercises/exercise25.md)
- [26. Array Permutation](exercises/exercise26.md)
- [27. Calendar Conflicts](exercises/exercise27.md)
- [28. 2D Matrix Search](exercises/exercise28.md)
- [29. Merge sorted arrays](exercises/exercise29.md)
- [30. Print a list from its tail to head](exercises/exercise30.md)
- [31. Move all instances of a value in an array at the end of the array](exercises/exercise31.md)
- [32. Sort a linked list](exercises/exercise32.md)
- [33. Circle in linked list](exercises/exercise33.md)
- [34. Verify that a binary tree is a binary search tree](exercises/exercise34.md)
- [35. Implement a Stack using two Queues](exercises/exercise35.md)
- [36. Fibonacci recursive, recursive with memoization, and iterative.](exercises/exercise36.md)
- [37. Two Stacks with one array](exercises/exercise37.md)
- [38. Stack using a single linked list](exercises/exercise38.md)
- [39. Queue using a single linked list](exercises/exercise39.md)
- [40. Simplify array with prime numbers](exercises/exercise40.md)
- [41. Find the turning number in an array](exercises/exercise41.md)
- [42. Find the majority element in an array](exercises/exercise42.md)
- [43. Robot visits cells in a 2D matrix](exercises/exercise43.md)
- [44. Find the nth Node in a single linked list traversing the list only once](exercises/exercise44.md)
- [45. Given a binary tree how will you get its mirrored tree?](exercises/exercise45.md)
- [46. Check if a tree is symmetrical](exercises/exercise46.md)
- [47. Print a binary tree by level, from top to down, with each level in a line](exercises/exercise47.md)
- [48. Height of an arbitrary binary tree](exercises/exercise48.md)
- [49. Binary Tree to Heap](exercises/exercise49.md)
- [50. Check if an array can be the post-order traversal of a binary search tree](exercises/exercise50.md)
- [51. Convert a binary search tree into a sorted double linked list](exercises/exercise51.md)
- [52. Generate combinations of a given string](exercises/exercise52.md)
- [53. Smallest possible sum](exercises/exercise53.md)
- [54. Give an algorithm that returns true if a string contains properly nested and balanced parentheses, and false if otherwise](exercises/exercise54.md)
- [55. Design a data structure that supports insert(), member(), findSmallest in O(log n)](exercises/exercise55.md)
- [56. Sort the scores of a game in O(n)](exercises/exercise56.md)
- [57. Merge two BSTs into a double sorted linked list](exercises/exercise57.md)
- [58. Bin Manager in O(n log n)](exercises/exercise58.md)
- [59. Min in a sequence in O(1)](exercises/exercise59.md)
- [60. Check if two trees are identical](exercises/exercise60.md)
- [61. Devide and Conquer to calculate the root of a number](exercises/exercise61.md)
- [62. Partition players in two unfairly teams in O(n log n)](exercises/exercise62.md)
- [63. Sort tuples in O(n) keeping their relative sorting](exercises/exercise63.md)
- [64. Find whether there exists a pair of elements, one from S1 and one from S2, that add up to x in O(n)](exercises/exercise64.md)
- [65. Find the k smallest elements of an unsorted set of n integers in O(n + k log n)](exercises/exercise65.md)

[Various Utils helpful to generate test data](exercises/exerciseUtils.md)