A data structure is a way we store and organize our data. For example, think of arranging books in a room. We can place these books on a shelf, or stack them on a table, or even place them randomly anywhere in the room.
We have different options for arranging books in a room or different words, and we have different structures for storing books. In computers, too, we have a similar scenario, meaning that we can organize our data the way we want, and these different ways of organizing data are other data structures.
Introduction to Data Structure
If you are familiar with object-oriented programming concepts, then a class does the same thing; it collects different data types under one entity. The only difference is that it provides the data structure with the ability to access and manipulate data effectively.
In simple terms, data structures are structures designed to store ordered data so that various operations can be easily performed on it. It represents the knowledge of data to organize in memory. It should be designed and implemented in a way that minimizes complexity and increases efficiency.
Basic types of data structures
As discussed above, anything that stores data can be called a data structure, so integers, floats, Booleans, etc., are all data structures. It is known as the ADam statistical structure.
Then we also have some complex data structures, which are used to store big and connected data.
Here are some examples of abstract data structures:
Stack, Queue, etc.
All of these data structures allow us to perform various operations on data. We select the data structure based on what type of operation is required. We will look at the structure of these data in more detail in our later lessons.
The data structure can also be classified based on the following characteristics:
In the linear data structure, the data items are arranged in a linear order. Example: Queue
In a non-linear data structure, data items do not coexist. Example: tree, graph
In a homogeneous data structure, all elements are of the same type. Example: Array
In heterogeneous data structures, the elements may or may not be of the same type. Example: Structure
Static data structures are those whose size and memory locations associated with the structure are compiled. Example: Array
Dynamic structures are those that expand or decrease depending on the need for the program and its implementation. Also, the memory locations associated with the change. Example: Created using a Linked List pointer
What is an algorithm?
An algorithm is a limited set of instructions or logic to accomplish a specific descriptive task. The algorithm is not a complete code or program. It is just the basic logic (solution) of a problem, expressed at an irrationally high level like pseudocode or using a flow chart.
Each algorithm must meet the following characteristics.
The input algorithm must have 0 or more inputs provided externally.
Output – Must have at least 1 output.
Definiteness: Every step of the algorithm should be clearly and concisely described.
Finiteness: The algorithm should have a lot of steps.
Accuracy: A correct output must be generated at each stage of the algorithm.
An algorithm is efficient and faster if it takes less time to implement and uses less memory space. The performance of the algorithm is measured based on the following features:
This is the amount of memory required by the algorithm during its implementation. Space complexity for multi-user systems and in situations where limited memory is available should be taken seriously.
The algorithm usually requires space for the following components.
Instruction Space: This is the necessary space to store the implementation version of the program.
Space is fixed but varies depending on the number of all the lines of code in the program.
Data Space: This is the space required to store all space and the value of variables (including temporary variables).
Environmental Space: This is an important place to store environmental information needed to resume a suspended function.
The complexity of time
Time Complexity is a way of representing the amount of time required to complete the program. It’s usually a good idea to try to maintain the minimum time needed so that our algorithm can complete the implementation in the shortest amount of time. We will study time complexity in detail in later sections.