Sunday, November 3, 2013

Data Structures: Real World Application of Data Structures

As CS students, data structure must not be a new term for you. However, have you ever wondered if those data structures you have learned are applied in the real world. If so, how? In this post, I am going to introduce a few of them to you. 

1. Hash Table
Hash table is extremely widely used. In fact, internet router is a good example of why hash tables are used heavily. A router table can contains millions of entries. When a packet has to routed to a specific IP address, the router has to determine the best route by asking the router table in an efficient manner. For an element inside the hash table, the IP address is stored as the key and the path which follows for that address is stored as the value. Other examples are the famous MD5 hash algorithm and P2P transport. 

2. Binary Search Tree
Binary Search Tree is also widely used, especially in information organizing, indexing and retrieving. For example, binary search tree is used in many search applications where data is often entering and leaving. Other examples of using BST are the Windows Explorer and Internet Explorer of Microsoft. 


3. Red-Black Tree
Red-Black Tree is just a specific kind of Binary Search Tree. With the help of Red Black Tree, we can quickly locate data structures corresponding to a specific value. For example, Linux Kernel links together all the memory area objects in a Red Black Tree while managing vm_area_struct. Another example is the TreeMap in Java API uses Red-Black Tree as its backend.

5 comments:

  1. Your post was nicely organized. Your explanations of each type of data structure were good however you manage to improve them by giving examples both in writing and imagery. You should type your post on a word processor before posting to catch some of your grammatical errors. You should have discussed another data structure because like you mention on your post, Red-Black Trees are a subset of Binary Trees.

    ReplyDelete
  2. Indeed, data structure is not something new to me. It is something that I learned in my basic programming class. I like how you use examples for every type of database that you introduced to us in this blog post. It is new to me that the router uses hash table to store their data. Binary Tree is something that I used recently as well in creating a parser. I like how you use picture to show what each data type looks like. However, I think you should tell us the different between the Red Black Tree and Binary Tree, it would have made it a lot more clear why there are two different kinds of tree data structure. What advance or benefit does each have other the other.

    ReplyDelete
  3. This blog is great. You nicely organized the blog into sections to describe some of the data structures. The images for each section make the blog even better as there are visuals to remind everyone of their structure. Overall you gave a good overview of each of the data structures you presented and even added examples of real world applications. The biggest issue in learning about a subject is that they often leave out the real world part, especially in schools.I think you could have added links to each part of your blog that go into detail on the data structure.

    ReplyDelete
  4. This post is extremely informative. Most the information you have provided are new to me. The images you provided support the content of the post very well. The content is organized perfectly and is easy to understand. From my observation of your post I can understand that hash table is the most commonly used data structure in real time.
    Great work on this post and I would like to read more about real world application of other types of data structure also.

    ReplyDelete
  5. Nice post. Pictures are always helpful when explaining sorting algorithms and data structures. Data structures are probably the second most important thing in programming. The first being knowledge and theory of computer science. Several people have told me that knowing your data structures properly is key information in landing a job.

    One of the drawbacks to learning advanced data structures is the lack of any clear example. While I regret I have to say your post does not quite give a lot of information, it does give enough.

    ReplyDelete