The goal here is to create ES6 JavaScript classes for all of the fundamental data structures along with common algorithms that interact with them. I personally was not a computer science student, so this is my way of filling in the gaps of my knowledge as I was faced with problems with my projects that required an understanding of this material.
I was working on a streaming application and was faced with a challenge to create a method to have nested comments for every users' stream. As I fetched the comments data from the backend, I shortly realized that the comments form a K-nary tree. From there I created an React component that displayed the comments in a tree-like structure. Other considerations included whether or not I would fetch all of the data at once or display whatever comments is necessary which could improve time complexity significantly and worsen drastically.
I was fascinated at the idea that I would be able to integrate core computer science fundamentals in my projects and look forward to adding more. I could use a open-source library to deal with this, but I feel that this is a perfect opportunity for me to learn the details.
The following are a list of data structures I plan on building:
- Singly Linked Lists
- Doubly Linked Lists
- Stacks and Queues with Linked List implementation
- Binary Search Trees
- Heaps
- Hashtables
- Graphs
- ES6 JavaScript