Sunday, November 3, 2013

Data Structures


Data structures are methods of storing and organizing data in Computer Science. Data Structures is among the most important subjects of Computer Science because of their use when it comes to large amounts data. Depending on the type of data structure used for storage, retrieving a specific fragment of data could be very simple and take little time or very hard and take a long time or perhaps even impossible. The main categories of data structures are Lists (Lists and Arraylists), Trees (Binary Trees), Hashes (Hash table) and Stacks. Each data structure has its own way of organizing data as its inputted in order to store it. Visualizing how each data structure works is essential when deciding what type of data structure to use when a specific type of data is being collected.
The ideas behind some data structures are used for more than just simple store, they can be used to make it hard for unauthorized people to access the data, encrypting. Using a hash table is a simple way to encrypt data; simple yet effective if done correctly. Without knowing the proper hash function and key values, a person trying to unencrypt the data would have to use brute force to try to figure out the hash function and keys, which can take a very long time.

Simple picture of a hash table connecting names(keys) to phone numbers

Here you can find a more in-depth look at the types of data structures. 

4 comments:

  1. What an informative blog regarding data structure. You really gave a good background and descriptions of data structure. I like how you described not only its purposes of storing data but how it can be used to encrypt data and make it hard for unauthorized people to access. Large amounts of data are stored in computer now a day. Data structure provides a means to manage large amounts of data efficiently and its ability to fetch and store it from computer.

    ReplyDelete
  2. From the first line the post is organized very well. Data structure is explained and places where it is used are also discussed. Initially the post gives a general idea of what is a data structure and how it can be used. Then some of the main categories of data structure are listed. Reason for why and when a hash-table should is explained clearly. The image supports the content of the post. The link that you provided was informative. I feel that the post should have discussed a little about all the main categories of data structure that are listed.

    ReplyDelete
  3. Hi Jonatan, this is a nice post. I agree with you that data structure is one of the most important concept in Computer Science. Knowing which data structure should be used can make the program become more efficient. I especially like how you use hash table as an example to show us some real world application using data structures. A piece of advise is to perhaps add more details on the other data structures which are listed, including the binary tree and stack.

    ReplyDelete
  4. A nice concise overview of data structures worded so that anyone can understand the concepts. I think you may be confusing cryptographic hashes with hash tables, however. Brute-forcing the hash function for a table wouldn't be that difficult, plus it could easily be determined through reverse engineering and inspecting the low-level code being used to generate the hash values. The data itself is in no way encrypted and almost all implementations of hash tables allow access to the stored data without the use of keys or even the set of key-value pairs. The one-way nature of keys in hash tables does parallel cryptographic hashes, but the only thing that would really be getting hashed in such a sense is the key itself. Hash tables also don't really offer any sort of decent collision-resistance like crypto hashes since keeping storage compact is one goal of hash tables and collisions are allowed and build into the scheme.

    ReplyDelete