Reddit mentions: The best data structure books
We found 43 Reddit comments discussing the best data structure books. We ran sentiment analysis on each of these comments to determine how redditors feel about different products. We found 17 products and ranked them based on the amount of positive reactions they received. Here are the top 20.
1. Algorithms + Data Structures = Programs (Prentice-Hall Series in Automatic Computation)
- Used Book in Good Condition
Features:
Specs:
Height | 9.5 Inches |
Length | 6.5 Inches |
Number of items | 1 |
Weight | 1.50575724946 Pounds |
Width | 0.75 Inches |
2. Data Structures and Algorithms in C++
- Used Book in Good Condition
Features:
Specs:
Height | 9.200769 Inches |
Length | 7.40156 Inches |
Number of items | 1 |
Weight | 3.40393732528 Pounds |
Width | 1.098423 Inches |
3. Data Structures and Algorithms in Python
Used Book in Good Condition
Specs:
Height | 9.401556 Inches |
Length | 7.700772 Inches |
Number of items | 1 |
Weight | 3.13938261088 Pounds |
Width | 1.401572 Inches |
4. ADTs, Data Structures, and Problem Solving with C++
- Open up a world of deliciousness with an 8-ounce bag of HERSHEY'S PIECES Candies with the taste of milk chocolate with whole almonds.
- Treat yourself to delicious whole almonds enrobed in smooth HERSHEY'S Milk Chocolate with a classic, crunchy candy shell.
- This new, nutty candy is the perfect movie snack or ice cream sundae topping.
- Great for sharing and snacking, these candies come in portable pouch with resealable opening. Sweeten up any day at home, school, or the workplace with HERSHEY'S brand chocolate candies.
- This product ships as an 8-ounce pouch.
Features:
Specs:
Height | 3.937 Inches |
Length | 3.937 Inches |
Number of items | 1 |
Weight | 0.220462262 Pounds |
Width | 3.937 Inches |
5. Problem Solving With Algorithms And Data Structures Using Python
Used Book in Good Condition
Specs:
Height | 9 Inches |
Length | 7.25 Inches |
Number of items | 1 |
Weight | 1.4109584768 Pounds |
Width | 0.75 Inches |
6. Data Structures and Algorithms Using C#
- Used Book in Good Condition
Features:
Specs:
Height | 9.25 Inches |
Length | 7 Inches |
Number of items | 1 |
Weight | 1.3889122506 Pounds |
Width | 0.83 Inches |
7. DATA STRUCTURES - AN ADVANCED APPROACH USING C (Prentice Hall Software Series)
- SIMPLE "CLICK IT AND GO” DESIGN: Cold rolled steel buckle attachment easy-to-use "Click it and Go" design makes travel safety for you and your dog a snap!
- 2400 LB. BREAKING STRENGTH ABRASION-RESISTANT NYLON SEAT BELT WEBBING: Fully adjustable from 17.5” to 26” Reinforced precision computer stitching for strength, performance, and unsurpassed durability.
- REDUCES DRIVER DISTRACTION FOR SAFER CAR TRIPS: Enhanced industry standard swivel-style snap hook is electroplated for durability and abrasion resistance. Simple design improves pet comfort and makes it easy to use it every time you travel.
- THE CLICK ADJUSTABLE CAR RESTRAINT SYSTEM IS COMPATIBLE WITH AWARD-WINNING EZYDOG HARNESSES: For award-winning comfort and control use your CLICK restraint with our EzyDog Quick Fit, Chest Plate, or Convert dog harnesses.
- CAUTION: TO AVOID CHOKING OR INJURY ALWAYS USE A CAR RESTRAINT WITH A HARNESS NEVER A COLLAR. *CLICK DOES NOT FIT AND IS NOT FOR USE IN VOLVO AUTOMOBILES.
Features:
8. Algorithms and Data Structures
- Folding treadmill with 2.5-horsepower continuous-duty motor
- Adjustable MaxComfort cushioning system helps you recover quickly
- Speed range of 0.5 to 12 mph; incline range of 0 to 12 percent
- Includes Livetrack Interactive technology; 9 total workout programs
- 325-pound capacity; measures 36 x 60 x 70 inches (W x H x D) unfolded
Features:
Specs:
Number of items | 1 |
Weight | 1.45284630658 Pounds |
9. Data Structures and Program Design in C++
Specs:
Height | 9.75 Inches |
Length | 7.75 Inches |
Number of items | 1 |
Weight | 2.74916440714 Pounds |
Width | 1.25 Inches |
10. Schaum's Outline of Data Structures with Java, 2ed (Schaum's Outlines)
McGraw-Hill
Specs:
Height | 10.8 Inches |
Length | 8.1 Inches |
Number of items | 1 |
Release date | June 2009 |
Weight | 1.73944724718 Pounds |
Width | 0.6 Inches |
11. Advanced Data Structures
Used Book in Good Condition
Specs:
Height | 9 Inches |
Length | 6 Inches |
Number of items | 1 |
Weight | 1.653466965 Pounds |
Width | 1.06 Inches |
12. Data Structure Using C & C++, 2nd Ed
- [VISIBILITY]: Each ‘L’ sized fluorescent yellow safety vest keeps you safe and reduces risks of accidents in construction, for surveyors, during roadside emergencies, when bicycling, for cross guards and many more uses/applications.
- [EXTRA COMFORT]: The lightweight and comfortable 100% polyester mesh fabric is perfect to be worn over clothing and is breathable, so that you remain cool without overheating while working on the job site or in any other application. (Note: It is recommended sizing one size up for a slimmer fit and 2-3 sizes up for a looser fit).
- [REFLECTIVE STRIPS]: 2 vertical and 2 horizontal reflective strips come with a 2” width on both, front and back, for maximum visibility in all weather and lighting conditions to keep you safe while performing your tasks.
- [VEST DESIGN]: The quick and easy front zipper design allows for quick and easy on and off, anywhere you go when you need that extra visibility in your environment.
- [ANSI APPROVED]: Each vest is ANSI/ ISEA 107-2010 (former edition 107-2004) Class 2 standard of high-visibility safety apparel approved, so you know you are getting a quality product that gets the job done.
Features:
Specs:
Height | 1.2204724397 Inches |
Length | 9.2125984158 Inches |
Weight | 1.6755130817888 Pounds |
Width | 6.9685039299 Inches |
13. C++ Programming: Program Design Including Data Structures
Specs:
Height | 10 Inches |
Length | 8 Inches |
Number of items | 1 |
Weight | 4.9824471212 Pounds |
Width | 3 Inches |
14. A Handbook of Small Data Sets (Chapman & Hall Statistics Texts)
- Solid jacquard long sleeve sweater
- Warm colors
Features:
Specs:
Height | 9.21258 Inches |
Length | 6.14172 Inches |
Number of items | 1 |
Weight | 1.74826573766 Pounds |
Width | 0.9586595 Inches |
15. Data Structures and Program Design (3rd Edition)
- One of the best flowers to use in floral decorations, Black Star is perfect for use in a container on the patio or planted in the garden border. The bloom is deep purple with a spathe that is almost black, and the foliage is light green, spotted with red tips.
- Please note, our shipping stays the same for up to 5 items, so please make the most of your shipping dollar!
- 18-20 inches tall
- Full sun to part shade
- Zone 8-11. All orders Daylily nursery brand and are grown here. All orders are shipped with Daylily nursery branded packing material, and Daylily nursery copyrighted growing instructions.
Features:
Specs:
Height | 9.75 Inches |
Length | 8 Inches |
Number of items | 1 |
Weight | 2.645547144 Pounds |
Width | 1.25 Inches |
16. Data Structures and the Java Collections Framework
Specs:
Height | 9.200769 Inches |
Length | 7.2003793 Inches |
Number of items | 1 |
Weight | 2.35453695816 Pounds |
Width | 0.901573 Inches |
17. Fundamentals of Data Structures in C++
Used Book in Good Condition
Specs:
Height | 9.25 Inches |
Length | 6.25 Inches |
Weight | 2.15 Pounds |
Width | 1.25 Inches |
🎓 Reddit experts on data structure books
The comments and opinions expressed on this page are written exclusively by redditors. To provide you with the most relevant data, we sourced opinions from the most knowledgeable Reddit users based the total number of upvotes and downvotes received across comments on subreddits where data structure books are discussed. For your reference and for the sake of transparency, here are the specialists whose opinions mattered the most in our ranking.
Entrepreneur Reading List
Computer Science Grad School Reading List
Video Game Development Reading List
I think a lot of people confuse programming with programming languages. I see a lot of people say things like "I learned <insert programming language here> but I still have no idea what I'm doing."
This is because programming is more than just the language you use. It is a set of skills, including mastery of a language, algorithms, data structures, design principals (and patterns), hardware knowledge, math, logic, problem solving... the list could go on.
Mastering a language is just one part of the equation. Depending on the kind of programs you want to create, you will have to master some, all, or more of the other skills I've mentioned.
I would start with data structures and algorithms. Since a lot of programming has to do with data, it's good to know the various ways it can stored, sorted and manipulated. You probably already know about simple data structures, like arrays, but there are many more, like lists, trees and maps. Algorithms like sorting, searching and pattern matching will help you solve some very common problems you'll encounter. Either enroll in a course on data structures and algorithms (they're generally taught together) or find yourself a good book.
Once you've mastered that, move on to design. Learning how to design a large program is an art and a science unto itself. There are many useful design patterns that, once you know how they work, you can apply directly to your own designs. While they're not the end-all-be-all of computer program design, they're proven effective and can be extremely useful.
Another thing you should definitely understand is how computers work. Now I"m sure you have a general idea of how a processor and memory works, but do you really understand the underlying architecture? Do you know how registers work? How instructions are stored? How the operating system interfaces with the various hardware? How the software interfaces with the operating system? While this knowledge isn't 100% necessary, it can be very helpful to understand how your programs are functioning on a low level. Most modern languages abstract most of that out, but keeping it in the back of your mind can only help.
Anyhow, I know how you feel, and don't worry too much about it. Programming is a life long learning endeavor. There will always be new things to learn, new ways to do things, and new technologies to understand, but if you stick with it, you'll eventually learn it.
Just think, every piece of software in the world was written by someone who, at one time or another, knew absolutely nothing about programming.
I came here to put this same book. This book is crazy, crazy good. It would help to have some knowledge of algorithms and data structures before going in as the examples aren't vast and the information are fairly heavy, but it's a fantastic reference.
I would encourage you to change your thinking from "learning algorithms in Ruby" to "learning algorithms" and then just implementing examples in Ruby. There are a few classic Algorithms book that I'd highly recommend. In addition to The Algorithm Design Manual, Data Structures in C is written in C but fairly generic and gives you the right tools for thinking about performance and algorithms, and Introduction to Algorithms, 3ed is more academic but also stupid inexpensive right now. It's a great learning book as the examples are very detailed. It's aimed at interviewing but Cracking the Coding Interview has a nice short survey of algorithms and data structures too
So I am more of a book guy these days. I found Algorithms + Data Structures = Programs by Niklaus Wirth to be pretty solid. For something a bit more contemporary Introduction to Algorithms by Cormen, Leiserson, Rivest and Stein is a very good textbook. If you're into math and learn best from repetition I'd suggest The Art of Programming Vol 1 by Knuth as well.
The issue I have with a lot of online content is the economics of the Internet are such that its not profitable to go in-depth, so its definitely worth paring online courses(whether they're from an accredited university or not) with a textbook or two. You might even want to crawl down the rabbit hole further and dig into the camps of mathematics where these concepts derive like Queue Theory or Set Theory. If your the type of person who gets the most out of things by tracing concepts to their roots digging into the maths helps a ton.
I think that Problem Solving with Algorithms and Data Structures on interactivepython is actually perfect to start with - it gives you a good overview of both the technical concepts and implementations. It's not extremely rigorous, either.
Why not try going through it, and learn whatever you can? It's actually an interactive version of the book Problem Solving with Algorithms and Data Structures by Brad Miller and David Ranum (you can find a copy of the PDF here), which is one of the recommended textbooks of MIT's 6.006 Introduction to Algorithms along with CLRS.
On another note: if you'd like an language-agnostic approach that focuses more on algorithmic thinking, analysis, and some implementation in psuedocode, check out Algorithms: Design and Analysis offered by Stanford on Coursera.
First of all, thanks for you answer.
For example I have a python object containing 5 attributes.
attr1, attr2, attr3, attr4, attr4, attr5
Some of them are Integeter, some of them dates and some of them Strings. For example I'd like a function that returns me all objects based on criteria
attr1 > 10 && attr3 = 'randomString'
Would a list of Dicts be faster or a list of objects. Also if you happen to know any good book that explains this stuff it would be awesome.
Something like this one? https://www.amazon.com/Algorithms-Structures-Prentice-Hall-Automatic-Computation/dp/0130224189
> My reading of it was more along the lines of: your sensory input are not you, and you should not cling to them, the self is always changing, so you shouldn't expect yourself to be reborn as the exact same person in your next life. This is a far cry from "you, as a discrete "self", do not really exist"
I think you half-understood. If your self is always changing, in what capacity does your self exist at all? The self that you associate with "you", in the next instant, will be utterly different; so what is being preserved? What indelible "self-hood" is being passed along? If I build a sand castle, then knock it down and build a new one, and then knock it down and build a third one, and so on, in what sense can you say that the original castle remains?
> I believe that i have a point of focus different from my brain (information source/depository), because even if a computer could store all the information in my brain, there'd still need to be someone/something browsing and calling up certain bits of information for it to do what it does.
Not necessarily; automation is the heart and soul (as it were) of computing. Google has programs that scour billions of webpages, collating and indexing the data, and there is nobody on the other end dictating precisely what it must do or how it must accomplish it. What you've described is a data structure, which is only half the utility of computers; algorithms + data structures = programs.
> I find it hard to believe that we have abundant evidence that mind is inextricable from matter. I suppose once we admit (which we must) that energy is just free flowing matter it gets easier.
(Be careful here, "energy" reeks of woo-woo.) If I have a thought, or a feeling, there is a corresponding event in my neurology; science is even to the point that we can sometimes tell what you're thinking about with just an MRI. We have no examples of something being thought or felt, and being unable to connect it with neurological activity.
We might not entirely understand how a brain works, but I don't know how a car works; suggesting that there are non-physical components to the mind is like suggesting that a car can run without turning on its engine, and we've never observed that to be the case.
I would pick up both a data structures book and a C++ book; for instance, Data Structures and Algorithms in C++ and Programming: Principles and Practice Using C++.
Of course, you can use any data structures book you like; some are better than others, but they all teach the same stuff. But when you're learning the abstract stuff at the same time as basic programming, it can be nice to see examples in your language. Principles and Practice is one that I wholly recommend, though, as an excellent introduction to modern C++.
Also, be aware that there is way more bad C++ material out there than there is good C++ material. If in doubt, check out the semi-official book list or ask around here.
I don't know why you're getting downvoted.
Unless you want to learn programming and what it entails (algorithms and data structures), this is fine. A course, in all honesty, would be too slow. The majority of the material in the codeacademy course, it appears, is covered in the official Python tutorial, which goes even further in depth. Here's to save you googling:
Now, if you want to learn programming at an intern's level for example, Goodrich's book is a good start.
So, (IMO) the raspberry pi doesn't specifically bring anything to learning C++ that I think you couldn't get on any other computer. And I'm assuming you have a computer because you're posting here (could be a phone but i don't know).
If you've got windows I tend towards Visual Studio and on a Mac I'd go with Xcode. When I'm in Linux I tend to just go straight to gcc and make (this won't make sense to you yet)
Books: These are the ones that were used in my C++ focused classes:
Big C++
ADTs, Data Structures and Problem Solving in C++
Hope this helps.
>Point me to one page explanations of them and I'll be amazed by them too.
http://en.wikipedia.org/wiki/List_of_algorithms
Take your pick, each of the links on that page is to a brief summary explanation, and many of them will probably be "amazing" to relatively new/less widely-experienced programmers.
EDIT: Also, there are a host of standard reference books with a plethora of such things in them: Sedgewick's is a classic, then there is Wirth's Algorithms and Data Structures which used to be considered a "must read" for anyone in the profession, and then there are more recent things, like O'Reilly's nice little handbook/guidebook
As I recall, that's a pretty decent book/course. It's free, so just dive in and you can decide yourself if it's worth sticking with. Plus, the favicon kind of looks like Professor Farnsworth, so that's a bonus, I guess.
Other options:
Keeping to python, there's these two:
http://www.brpreiss.com/books/opus7/html/book.html
http://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275
And the MIT 6.006 Intro. Algo. course is taught in Python:
http://courses.csail.mit.edu/6.006/spring11/notes.shtml
Beyond python this is a pretty standard text (and is used for 6.006):
http://mitpress.mit.edu/books/introduction-algorithms
Keep learning it! I thought I knew C++ pretty well. Then I started my data structures class. This book has greatly expanded my understanding of C++. I'm still not even close to done. But I'm working on other languages and learning how compilers work now as well. It never ends muwhahaha
For Algorithms and Data Structures, I would recommend the book by Goodrich and Tamassia. There are three versions of the book that you can choose from, depending upon which programming language you are most comfortable with - Java, Python, or C++ .
I like this book: http://www.amazon.de/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275
It starts with quickly skimming over the basics because it assumes the reader to be familiar with C or Java. Later it deals with algorithms and data structures. Those were always my favorite programs to learn a new language.
Oh and I use Emacs but I think you are fine with Eclipse.
Oldie, but
Algorithms + Data Structures = Programs
http://www.amazon.com/Algorithms-Structures-Prentice-Hall-Automatic-Computation/dp/0130224189
I noticed "Data Structures and Algorithms in Java" in the upper left. Don't know if it's any good. I'm an embedded software engineer using C & (a little) assembly. Only Java for me is poured into a cup.
Miller and Ranum (https://www.amazon.com/Problem-Solving-Algorithms-Structures-Python/dp/1590280539) was what I used and is fantastic.
"Algortihms + Data Structures = Programs"
There are books for different programming languages.
Also, check out MITs web site. All of their courses are on line for free.
It's all the same material. Here's the book we used in uni:
https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275/ref=sr_1_1?keywords=Data+Structures+and+Algorithms+in+C%2B%2B&qid=1558918108&s=books&sr=1-1
These authors wrote the same book in like 6 languages, just find the language you want.
I would recommend https://www.amazon.com/Schaums-Outline-Data-Structures-Outlines/dp/0071611614 in addition to the Sedgewick book.
CS luminary Niklaus Wirth thinks so much so that he wrote a book titled "Algorithms + Data Structures = Programs"
Niklaus and I agree on this :)
sounds like this one
Advanced Data Structures and Handbook of Data Structures and Applications are both well regarded.
Some books are not interesting. There are certainly other books on this topic; this ancient classic helped me a lot when I was beginner.
Off the top of my head:
I think the consensus for a good introduction book to python is Automate the Boring Stuff with Python. I knew C++ when I started python and learned it though an Algorithms and Datastructures course in my masters degree. the book from that class is here : Data Structures and Algorithms in Python. Finally I found these tutorials at filling in gaps in my knowledge : Corey Schafer
ORLY?
I see it available on Amazon for cheap.
Algorithms + Data Structures = Programs
https://www.amazon.com/Algorithms-Structures-Prentice-Hall-Automatic-Computation/dp/0130224189
Algorithms + Data Structures = Programs
This is the book I'm using in school
https://www.amazon.com/Programming-Program-Design-Including-Structures/dp/1285852753
https://www.amazon.es/Algorithms-Data-Structures-Niklaus-Wirth/dp/0130220051
Book prescribed by professor : Tannenbaum
Study material used by students : YouTube videos and GeeksForGeeks
http://www.amazon.com/Handbook-Small-Chapman-Statistics-Texts/dp/0412399202
My dad was an lecturer at Data General and he borrowed a book on BASIC for me - no idea what it was called.
Aside from that one of the first serious books I read was Niklaus Wirth's Algorithms + Data Structures = Programs - it was a first year course book at University so there would have been quite a few others (most of which I've forgotten) but another memorable one was Clocksin and Mellish's Programming in Prolog
Point of recursion is not to be faster ... the point is that there are huge group of tasks which is obviously recursive and doing it iteratively means massive waste of time and loosing clarity of code.
Let's say I was writing json_diff (it is in PyPI) ... comparing two arbitrary json files. You have to go recursive there or you go mad. Various strategical tasks (examples could be The Problem of Eight Queens, ... get http://www.amazon.com/dp/0130224189 from your local library).
I used the 2nd edition of this book called Data Structures and the Java Collections Framework. At the time it was one of the most up-to-date books on Java 1.5 and generics. The book is very accessible for students, and probably one of the better technical books I've read in my entire academic career.
However, if I was to learn data structures from scratch again, I'll probably would go with Algorithms by Sedgewick. I've heard nothing but good things about the book, and don't let the name fool you. It actually focuses on the implementation of data structures or so I heard.
Personally I find this to be the worst text book I've ever had Fundamentals of Data Structures in C++