There's a lot of talk about data structures, but I can't find a simple list of data structures and their practical use out there. I'm trying to study for an interview and I think this would help me out, along with many others. I'm looking for something like this:
Active1 year, 8 months ago
A data structure is a specialized format for organizing and storing data. General data structure types include the array, the file, the record, the table, the tree, and so on. Any data structure is designed to organize data to suit a specific purpose so that it can be accessed and worked with in appropriate ways.
Data structure - Example/Used for
Hash table - fast data lookup ..then give an example
Array - ..
Applications: Implementation of other data structures, Execution of matrices and vectors, Dynamic memory allocation, Pointer container, Control tables. Stack refers to an orderly arrangement of data. It consists of just one end. This end is used for both, data addition as well as removal. N-ary-Trees (most commonly binary trees) are extremely efficient in many situations. Linked lists are very useful if you are inserting elements into the middle of a list many times, whereas an array would have to move all the above elements up one for every entry. As you data gets large, this is a huge problem. Arial Tahoma Wingdings Blends Application of Data Structures Overview Priority Queue (PQ) Structures Common PQ operations Optional PQ operations Considerations when implementing a PQ in competition Linear Array Binary Heaps Array implementation PQ Operations on a BHeap Operations on a BHeap Operations on a BHeap Operations on a BHeap Operations on a BHeap Operations on a BHeap BHeap Operations: Summary Corollary: Heapsort Binomial Trees Properties of Binomial Trees Binomial Heaps Binomial. Data structures are widely used in computer science for storage of data. They refer to the allocation and storage of data in varied ways. This Techspirited post gives you an overview of the different types of data structures used in computer science, and their various applications.
Binary tree - ..
If there is a resource like this somewhere, please let me know.
Thanks!
EDIT: I mean wikipedia is good and all, but on most of the pages they don't actually list practical uses. I'm looking for something more than that.
Joel
JoelJoel
6,1921313 gold badges3434 silver badges2828 bronze badges
closed as too broad by Bhargav Rao♦Jun 7 at 19:13
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
6 Answers
Found the list in a similar question, previously on StackOverflow:
Practical Applications Of Data Structures
Hash Table - used for fast data lookup - symbol table for compilers, database indexing, caches,Unique data representation.
Trie - dictionary, such as one found on a mobile telephone for autocompletion and spell-checking.
Suffix tree - fast full text searches used in most word processors.
Stack - undoredo operation in word processors, Expression evaluation and syntax parsing, many virtual machines like JVM are stack oriented.
Queues - Transport and operations research where various entities are stored and held to be processed later ie the queue performs the function of a buffer.
Priority queues - process scheduling in the kernel
Trees - Parsers, Filesystem
Radix tree - IP routing table
BSP tree - 3D computer graphics
Graphs - Connections/relations in social networking sites, Routing ,networks of communication, data organization etc.
Heap - Dynamic memory allocation in lisp
Adobe Photoshop type is Raster, graphics editor. The platform on which system support is IA-32 and x86-64. Photoshop cs4 free download for windows 10.
This is the answer originally posted by RV Pradeep
Some other, less useful links:
Community♦
MXMLLNMXMLLN
1,14911 gold badge99 silver badges1212 bronze badges
I am in the same boat as you do. I need to study for tech interviews, but memorizing a list is not really helpful. If you have 3-4 hours to spare, and want to do a deeper dive, I recommend checking out
mycodeschool
I’ve looked on Coursera and other resources such as blogs and textbooks, but I find them either not comprehensive enough or at the other end of the spectrum, too dense with prerequisite computer science terminologies.
The dude in the video have a bunch of lectures on data structures. Don’t mind the silly drawings, or the slight accent at all. You need to understand not just which data structure to select, but some other points to consider when people think about data structures:
the_answer_is_xyzthe_answer_is_xyz
The excellent book 'Algorithm Design Manual' by Skienna contains a huge repository of Algorithms and Data structure.
For tons of problems, data structures and algorithm are described, compared, and discusses the practical usage. The author also provides references to implementations and the original research papers.
The book is great to have it on your desk if you search the best data structure for your problem to solve. It is also very helpful for interview preparation.
Another great resource is the NIST Dictionary of Data structures and algorithms.
dmeisterdmeister
23.8k1616 gold badges6565 silver badges8888 bronze badges
As per my understanding data structure is any data residing in memory of any electronic system that can be efficiently managed. Many times it is a game of memory or faster accessibility of data. In terms of memory again, there are tradeoffs done with the management of data based on cost to the company of that end product. Efficiently managed tells us how best the data can be accessed based on the primary requirement of the end product. This is a very high level explanation but data structures is a vast subjects. Most of the interviewers dive into data structures that they can afford to discuss in the interviews depending on the time they have, which are linked lists and related subjects.
Now, these data types can be divided into primitive, abstract, composite, based on the way they are logically constructed and accessed.
Application Of Stack
I hope this helps you dive in.
dmeister
23.8k1616 gold badges6565 silver badges8888 bronze badges
JavaUSerJavaUSer
Any ranking of various data structures will be at least partially tied to problem context. It would help to learn how to analyze time and space performance of algorithms. Typically, 'big O notation' is used, e.g. binary search is in O(log n) time, which means that the time to search for an element is the log (in base 2, implicitly) of the number of elements. Intuitively, since every step discards half of the remaining data as irrelevant, doubling the number of elements will increases the time by 1 step. (Binary search scales rather well.) Space performance concerns how the amount of memory grows for larger data sets. Also, note that big-O notation ignores constant factors - for smaller data sets, an O(n^2) algorithm may still be faster than an O(n * log n) algorithm that has a higher constant factor. Complex algorithms often have more work to do on startup.
Besides time and space, other characteristics include whether a data structure is sorted (trees and skiplists are sorted, hash tables are not), persistence (binary trees can reuse pointers from older versions, while hash tables are modified in place), etc.
While you'll need to learn the behavior of several data structures to be able to compare them, one way to develop a sense for why they differ in performance is to closely study a few. I'd suggest comparing singly-linked lists, binary search trees, and skip lists, all of which are relatively simple, but have very different characteristics. Think about how much work it takes to find a value, add a new value, find all values in order, etc.
There are various texts on analyzing algorithms / data structure performance that people recommend, but what really made them make sense to me was learning OCaml. Dealing with complex data structures is ML's strong suit, and their behavior is much clearer when you can avoid pointers and memory management as in C. (Learning OCaml just to understand data structures is almost certainly the long way around, though. :) )
silentbicyclesilentbicycle
Few more Practical Application of data structures
Red-Black Trees (Used when there is frequent Insertion/Deletion and few searches) - K-mean Clustering using red black tree, Databases, Simple-minded database, searching words inside dictionaries, searching on web
AVL Trees (More Search and less of Insertion/Deletion) - Data Analysis and Data Mining and the applications which involves more searches
Computer Data Structure
Min Heap - Clustering Algorithms
Aravind KrishnakumarAravind Krishnakumar
Applications Of Tree Data StructuresNot the answer you're looking for? Browse other questions tagged data-structures or ask your own question.Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |