One of the most important concepts in the field of computer
science is that of abstraction. Data Structures
are a great tool in abstracting data. Data
structures are fundamental for many for high level programming languages giving
tremendous power to programmers with easy use.
By abstracting data types such as Integers and Strings into a structure,
programmers are able to easily manipulate and access data. Often overlooked, Data Structures are one of
the hardest concepts to grasp at first, but can be one of the most
rewarding. Choosing the proper data
structure can make solving certain problems trivial while choosing the wrong
data type will make them cumbersome if not impossible. Mastering the art of choosing a data
structure as well as being able to build one’s own, is a highly important skill,
one which has greatly helped me in my later programming classes.
To me, the coolest thing about Data Structures is how much
they can improve performance. Not only
do Data Structures organize data in an easy way, they also optimize the way one
accesses (adding and retrieving data) from them. Using the proper data structure can tremendously
improve a programs performance. A good
example of performances based on choosing the right Data Structure is insertion
into the front of a Data Structure. The
class vector is a very useful C++ data structure which acts as a dynamic
array. Inserting into the front of a
vector though is a very time consuming task because it requires all the contents
to be shifted. I instead one were to use
a linked list, they could insert into the head of the linked list in constant
time and not worry about shifting the rest of the list.

Nice overview of various data structures. You indeed provided a good example of when to choose a linked list over a vector. I also liked the image you have put up in context of data structures. However, Stack and Queues are not just data structures but are called abstract data structures since their underlying implementation could be anything, linked list or an array for example. Just one note, I saw minor spelling and grammar mistakes at couple of places. Very informative blog otherwise.
ReplyDeleteVery descriptive blog regarding data structure. I really how you describe the difficulty of learning and how reward it is at the end. We can see how useful data structure to managing, organizing and fetching large amounts of data from computer. Besides from these benefits, it can also be used to encrypt data and make it hard for unauthorized people to access it. Data structure requires writing a set of procedures that create and manipulate instances of that structure to implement it. Thus, its efficiency can’t be analyzed separately from those operations.
ReplyDeleteYour post is very informative and descriptive. Choosing right data structures for given tasks is one of the most important things that any Computer Science students should know about after taking a course of Data Structure and Algorithms. Each data structure has its own benefit, depending on in which situation it is used.
ReplyDeleteOverall, you did a good job. However, you can improve your post by always checking it on Criterion and adding some links to some articles or some statistics that can support your idea.
Good discussion on the importance of choosing the right data structure. In the programming world choosing the right data structure and algorithm are crucial factors in the performance of the program. I like your example of the Vector in C++ and how its structure affects its performance if used in a certain way. I do not have much experience with C programming yet but know exactly what you are talking about. Various forms of data structures span multiple languages and knowing what they are and how to use them is definitely helpful. Great read Joseph.
ReplyDelete