You are viewing a single comment's thread.

view the rest of the comments →

0
5

[–] brux 0 points 5 points (+5|-0) ago 

In practice, unless you're working on core libraries, you won't use data structures directly, much. Almost everything has already been done better in a library for you. It's very helpful; however, to know different ways to store large sets of data, in ways that let you operate over the data with minimal memory footprint or optimal performance, etc. i.e., Should I put this set of data in a HashSet? Perhaps a LinkedList? Why am I using so much memory for this dictionary?

0
2

[–] bloopton [S] 0 points 2 points (+2|-0) ago 

So it's more like a conceptual understanding of the way systems and programs around you work?

0
3

[–] brux 0 points 3 points (+3|-0) ago 

Yes. Knowing which data structure to pick is very valuable, but you'll rarely create the implementation of one of those data structures. Think about this problem: You have a huge list of Strings, and you want to find if there are duplicates. Comparing every two nodes will take way too long. What data structure can solve this for you?

1
-1

[–] king_of_voat 1 point -1 points (+0|-1) ago 

While it's true that you probably won't ever have to implement fundamental datastructures yourself knowledge of them is really important. Algorithms as a topic are by far not the only thing you should focus on studying.

If you know your datastructures, deciding how you want to write something performantly will become a lot easier, just consider e.g. that tree maps can be useful in cases where you need to be able to lookup all values with a key greater than x. You could work around with using some sort of hash map / list combination but knowing this stuff will make your life way easier.