Data structure is the fundamental and core course in the
Department of Computer Science. Any student who wants to study programming,
database, artificial intelligence, and machine learning must learn data structure
as the prerequisites. Since I am interested in data analysis, knowledge on
database and programming skills are important for me. I took a study about
courses offered by the Department of Computer Science at SJSU (San Jose State
University) and created the following diagram. From this graph, we can find
that data structure is undoubtedly the core course, which every CS student
should begin from.
We have known the importance of data structure. The next
question is that what data structure is or what content data structure
includes. Narrowly speaking, data structure is a particular way of storing and
organizing data in a computer so that it can be
used efficiently [1]. Opening any data
structure books, we can find different kinds of data types and structures which
use to deal with different types of data and its application. Broadly speaking,
data structure is a subject that studies the operation and the relation of
objects which computer performs on. The research area of data structure covers
software, hardware, and mathematics.
Finally, I want to share a very interesting data structure
application example [2]. In a five-way intersection as following figure (a), C
and E are both one-way streets. There are totally 13 available ways. Some of
them can go through at the same time such as A to B and E to C. But some of
them can’t go through simultaneously such as E to B and A to D. How can we
design the traffic lights to control vehicles to let them safely pass the
crossing without collision? Figure (b) provides an abstract view of the
original problem, which looks complicated but completely modeled the problem
with a classic data structure named as “undirected graph”. Each node in the
graph represents a possible path while the connecting edge between two nodes indicates
the two paths can’t be presented at the same time. Then a “vertex coloring” algorithm
on the graph can be used to solve the problem on such an abstract data model. In
Figure (b), the same number on the node indicates they are assigned the same
color. For me, I enjoy extracting data structures and models from realistic
problems. Hope you also like this example.
Reference
[2] Yan Weiming, “Data Structure In C”, Tsinghua University Press, 2009, 3rd Version


Hi Jingmei, I'm impressed at your example. I love these kinds of mathematical-based algorithm. Surely this is a big problem that happens in many societies, especially China, India, Southeast Asia... Understanding algorithms and data structures is very important. This is a great example showing how such knowledge is essential. I only have a small suggestion: put that picture after the first line of the question, in that case readers can follow more easily. Overall, great job!
ReplyDelete