(If you are looking at this in github, go to cs61b.bencuan.me for a much better experience!)
This is a non-comprehensive guide to data structures written with an intention to supplement learning and reviewing of Berkeley's CS61B material. Main topics include:
Object oriented programming basics
Abstract data types
Asymptotics and runtime analysis
And some more miscellaneous topics thrown in!
This guide is written to be as easy to follow and digestible as possible😀I've included lots of diagrams, practice problems, and more intuitive explanations instead of the more straightforward approach most textbooks use. This isn't a replacement for lectures and other course content. You probably need to look at those first, and come here if something isn't sticking!
Mostly me; making unnecessarily detailed guides is my goto method of making sure I understand everything😁But you are welcome to use it as well for reviewing for 61B exams, touching up on data structures knowledge, or whatever you want!*
*Must comply with WTF license terms
Again, I will emphasize that this isn't a textbook. While I try to be as comprehensive as possible, I'm sure I missed plenty of important concepts or assume you know others. I don't have an army of peer reviewers and guinea pigs to test-read the thing, so it's also not guaranteed that everything is 100% accurate. Please open an issue if you think something's wrong!
There are also plenty of practice problems to try out! Here's an non-exhaustive list of pages with those if you are mostly interested in them and not the conceptual content.
Here's a list of the most complete, well-written pages that I would trust to enhance your understanding and intuition the most. If you're feeling pretty good about these topics already, these will definitely be worth it to read!
Fork the GitHub repository and create a pull request. All contributions are welcome! Pages are formatted in Markdown syntax. Please edit existing pages only unless you have created an issue and I have gotten back to you about making a new page. Thanks 😄
The pages that could be most improved (in no particular order) are Union Find (Disjoint Sets), Stacks and Queues, Linked Lists, Sets, Sorting, Searching, Binary Search, Shortest Paths, and Exceptions. Feel free to add whatever content you like (explanations, examples, practice problems, memes...) to these!
Additionally, there are plenty of topics (Regex, Testing, Files/Scanners, Ranges, GUI just to name a few) that aren't currently covered in this guide. If you want to add one of these topics, please create an issue first but it will almost certainly be approved.