Estimated time: 2 hours
Read & understand. We will be using this knowledge soon.
You can solve the same problem in multiple ways. Some solutions are more time & resources intensive than others. We always want to optomise our code to the best performing code as possible. Some of the factors that will affect performance are the number of loops, nested loops, inefficient searching of arrays each time (lookup times), etc.
We will be using this knowledge to build our algorithms with code performance in mind.
Estimated time: 32 days doing 1 per day
You will be doing 1 PR per day with the solution and automated tests while continuing to advance in chapters.
Level II of problem solving: ✅ Get Started →
As before, create a new PR for each solution. Each solution should have Minitests which tests your code.
Estimated time: 2-3 days
Read and understand the structures for now. This will be important later & for interviews.
Refresher: OOP
Implementations:
- Singly-linked, Linked-list
- Doubly-linked, Linked-list
- Singly-linked, linked-list with head & tail
- Circular Linked List
Actions to learn:
- Add a new value
- end of the list
- start of the list
- in the middle
- Deleting a value
- end value
- head value
- middle value
- Traverse the list (print all the values in order)
- Sorting the list
- Binary Trees
Actions:
- Adding values
- Finding a value
- Deleting a value
- Balancing the tree
✅ Task: Implement the above data structures in Ruby, upload & open a PR on your Git repo for each data structure.