I do see many articles and post related to DS like BS/BST, priority queue, stack, queue etc. about there implementations and applications. I do see these applications are mostly at system level rather than usual day to day usage while working as developer. For example, I work on C#.Net platform and mostly end up with using DS like Arrays, List, Dictionary while processing data or while pulling it from external apis and database.

I would appreciate if someone can share usage and example of other DS in a day to day work and thought process while choosing them - like cost optimization, performance.

  • 3
    Nowadays it's rare for developers doing general data processing to have to worry too much about choosing data structures and algorithms. Database engines handle a lot of complexity server-side, and client-side machines are often powerful enough that anything will do. – Steve Mar 26 at 5:33
  • 1
  • 3
    Define "use", please. In my day to day work, I use a filesystem which probably uses some sort of BTree, I use a database, which probably uses some sort of BTree, I use a kernel which probably uses pretty much every data structure in the books somewhere (e.g. a priority queue for task scheduling). I use dictionaries, which at least in one implementation of one language I am using is a Hash-Array Mapped Trie and in at least one other language I am using is a Bagwell Trie. My text editor probably uses some pretty cool data structures as well. – Jörg W Mittag Mar 26 at 7:29
  • "day to day work" I think it depends on your job, doesn't it? – John Wu Mar 27 at 6:35

I am always on the lookout for facilities – whether built-in to the language or available from an outside source – which will get me as close as I can to my intended goal, without requiring me to waste quality time with "drudgery."

For example: "I need a 'queue' or a 'stack.'" I know that I can grab one off the shelf, and that it will be full-featured, fully-tested, thread-safe and so on. All without me having to do anything myself.

Likewise – "I need a 'collection.'" I don't care if the underlying implementation is "a binary search tree" or (more likely) "something much more exotic." I'm going to select "from off the shelf" the widget that's closest to what I'm looking for this thing to do, then I'm gonna just drop it into my project and move on ... tipping my hat to the developer(s) who at one time spent so very much time guaranteeing that it works.

Or: "I need a complete web server!" I know that I can get one without writing it.

Actum Ne Agas: Do Not Do A Thing Already Done.™


"Just drive the thing – don't look under the hood. It works. It's magic. Just drive the thing."

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.