Anyone would recommend resources for learning fundamental of data structures?
Book, video, or courses are welcome. I don't care the programming languages that are used for implementations. I am OK with C.
Anyone would recommend resources for learning fundamental of data structures?
Book, video, or courses are welcome. I don't care the programming languages that are used for implementations. I am OK with C.
Another would be Sedgewick's Algorithms. He has a pair of courses on Coursera [0] that follow his 4th edition which uses Java.
You're in for such a treat! Learning data structures and algorithms is so fun and really changes the way you think about programming.
[0] https://www.coursera.org/learn/introduction-to-algorithms
Really enjoyed that book! It intersperses real world use cases which helps when your motivation starts to wane and has a warmer tone than most algorithm books. That being said, it is still pretty rigorous and will take a lot of work to get through it all.
Whichever resource you choose, make sure it has exercises and do them! Even if you can't 100% figure some of them out just trying to will help your thinking immensely.
I like your advice.
For data structures in specific, You can go through following courses
1. CS 61B, Prof Jonathan Shewchuk, UC Berkeley -> [1]
2. COP 3530 Data Structures and Algorithms, Prof Sahni, UFL -> [2], videos are available at [3]
3. COP 5536 Advanced Data Structures, Prof Sahni - UFL [4]
All above courses focus on ideas than on mathematical rigour.
[1] https://www.youtube.com/playlist?list=PL4BBB74C7D2A1049C
[2] http://www.cise.ufl.edu/~sahni/cop3530/
[3] http://www.cise.ufl.edu/academics/courses/preview/cop3530sah...
Alg Design Manual is great and gives shorter shrift to complexity notation and the math behind it, while still giving you a robust introduction to it. Also, it's not as long as it appears as much of the book is devoted to going through specific algorithms so you can be familiar and add them to your mental "tool kit."
When I was taking analysis and design of algorithm class in my school, my lecturer used CLRS book as the main book. I think that book is so hard to learn. Some parts in the book is easy to understand, some other part is not.
[1] http://adit.io/posts/2016-05-25-Grokking-Algorithms-Is-Out.html
[2] https://www.amazon.com/dp/1617292230/ref=cm_sw_su_dp