fIn this lesson and in this series of lessons, we will introduce you to the concept of Data Structures. Data Structures is the fundamental and building block concept in Computer Science and good knowledge of Data Structures is a must to design and develop efficient software systems.
We deal with data all the time and how to we store, organization and group our data together matters, Lets pick up some examples from our day to day life where organizing data in a particular structure helps us.
we are able to search a word quickly and efficiently in a language dictionary because the words in the dictionary are sorted. What if the words in the dictionary were not sorted? It could be impractical and impossible to search for a word among millions of words. So, dictionary is organized as a sorted list of words.
If we have a something like City Map, the data like position of the land mark and road network connections, all this data is organized in the form of geometric. we show the map data in the form of these geometrics on a two-dimensional plane. So, map data needs to be structured like this so that we have scales and directions and we are effectively able to search for a land mark and get route from one place to another.
Daily Cash in and cash out statement of a business is also called a cash book account. It makes most sense to organize and store the data in the form of tabular schema. It is very easy to aggregate data and extract information, if the data is organized in these columns, in these tables. So different kind of structures are needed to organized different kind of data. now compute work with all kind of data computers wok with text, images, videos relational data geospatial data and pretty much any kind of data that we have on this planet how we store organize and group data in computers matters because computers deal with really large data even with the computational power of machines if we do not use the right kind of structures, the right kind of logical structures then our software systems will not be efficient.
Formal Definition of Data Structures would be that-
Data Structure is a way to store and organize data in a computer so that the data can be used effectively. When we study Data Structures as ways to store and organize data we study them in two ways.
So I'll say that we talk about Data Structure as
1) Mathematical or Logical Models
2) Implementation
When we talk about them as Mathematical and Logical models we just look at an Abstract view of them, we just look at from a high level what all features and what all operations define that particular Data Structure.
Example of Abstract View from real world can be something like the Abstract view of device named
Television can be that
It is an Electrical device that can be turned on and off
It can be receives signals for satellite programs and
the Audio, Video of the program.
As long as i have a device like this i do not bother how circuits are embedded to create this device or which company makes this device, so this is an abstract view
So when we study Data Structures as Mathematical or Logical models we just define their abstract view or in other words we have a term for this we defined them as "Abstract Data Types".
An Example of ADT can be i want to define something called a List that should be able to store a group of elements of a particular Data type and we should be able to read the elements by their position in the list and we should be also able to modify elements at a particular position in the list. I would say store a given number of elements of any data type. so we are just defining a model now can implement this in programming language in a number of ways, So this is definition of an Abstract Data type, we will also called it as ADT.
If you see all the high level languages already have a Concrete Implementation of such an ADT in the form of arrays. So arrays give us all these functionalities, so arrays are data types which are Concrete Implementation.
Second way of talking about Data Structure is Implementation would be some concrete types and not an abstract data type. we can implement the same Abstract Data Type in multiple ways in the same language.
For example in C or C++ we can implement this list Abstract Data Type as a Data Structure named Linked List and if you have not heard about if we will be talking about them a lot. we will be talking about Linked List a lot in the coming lessons.
So let's define Abstract Data Type formally because this is one term that we will encounter quite often Abstract Data Type are entities that are definitions of data operation but do not have implementation, so they do not have any implementation details.
We will talking about a lot of Data Structure in this course. We will be talking about them as Abstract data type and we will also be looking at how to implement them. Some of the Data Structures that we will talk about are arrays, linked list, Stack, Queue, Tree, Graph etc.
So when we will study these Data Structures, will study their logical view, we will study their operations are available to us with these Data Structures. we will study the cost of these operations mostly in terms of time and then definitely will study the implementation in a programming language.
So we will be studying all these data structures in the coming lessons and this is all for this implementation.
1) Logical View
2) Operations
3) Cost of Operations
4) Implementation
Data Structure is a way to store and organize data in a computer so that the data can be used effectively. When we study Data Structures as ways to store and organize data we study them in two ways.
So I'll say that we talk about Data Structure as
1) Mathematical or Logical Models
2) Implementation
When we talk about them as Mathematical and Logical models we just look at an Abstract view of them, we just look at from a high level what all features and what all operations define that particular Data Structure.
Example of Abstract View from real world can be something like the Abstract view of device named
Television can be that
It is an Electrical device that can be turned on and off
It can be receives signals for satellite programs and
the Audio, Video of the program.
As long as i have a device like this i do not bother how circuits are embedded to create this device or which company makes this device, so this is an abstract view
So when we study Data Structures as Mathematical or Logical models we just define their abstract view or in other words we have a term for this we defined them as "Abstract Data Types".
An Example of ADT can be i want to define something called a List that should be able to store a group of elements of a particular Data type and we should be able to read the elements by their position in the list and we should be also able to modify elements at a particular position in the list. I would say store a given number of elements of any data type. so we are just defining a model now can implement this in programming language in a number of ways, So this is definition of an Abstract Data type, we will also called it as ADT.
If you see all the high level languages already have a Concrete Implementation of such an ADT in the form of arrays. So arrays give us all these functionalities, so arrays are data types which are Concrete Implementation.
Second way of talking about Data Structure is Implementation would be some concrete types and not an abstract data type. we can implement the same Abstract Data Type in multiple ways in the same language.
For example in C or C++ we can implement this list Abstract Data Type as a Data Structure named Linked List and if you have not heard about if we will be talking about them a lot. we will be talking about Linked List a lot in the coming lessons.
So let's define Abstract Data Type formally because this is one term that we will encounter quite often Abstract Data Type are entities that are definitions of data operation but do not have implementation, so they do not have any implementation details.
We will talking about a lot of Data Structure in this course. We will be talking about them as Abstract data type and we will also be looking at how to implement them. Some of the Data Structures that we will talk about are arrays, linked list, Stack, Queue, Tree, Graph etc.
So when we will study these Data Structures, will study their logical view, we will study their operations are available to us with these Data Structures. we will study the cost of these operations mostly in terms of time and then definitely will study the implementation in a programming language.
So we will be studying all these data structures in the coming lessons and this is all for this implementation.
1) Logical View
2) Operations
3) Cost of Operations
4) Implementation