Data Structure is a method which provides a proper structure and syntax to store and organize our data so it could be used efficiently. Data Structures provides a proper format to our data so the data can be inserted and retrieved in an expected way.

**There are two components of Data Structure.**

- Interface
- Implementation

**Interface**

An interface of Data Structure deals with the operation related to a particular data structure most of the famous Data Structure such as Array, List, etc follow some of the same interfaces. Data Structure supports many operations such as Insertion, Deletion, Traverse, etc.

**Implementation**

The Implementation of data structure means what algorithm that particular data structure has. Every Data Structure has its own unique algorithm that’s what makes it different from others. With its algorithm, we could tell how the Data Structure will organize the data and how the operations going to perform on it.

**Characteristics of a Data Structure:**

Data Structure has 3 characteristics.

- Correctness
- Time Complexity
- Space Complexity.

**Correctness**

The implementation of a Data Structure must be correct so all its interface works accordingly. A small mistake in implementation can make the data structure ineffective.

**Time Complexity**

Time Complexity of a Data Structure defines the time or steps taken by that Data Structure or program to completes its all operations. The Time complexity is the vital asset of any program and it defines the efficiency of that program the better the time complexity the better the efficiency of the program. Only Logic can provide the best time complexity. The time complexity for many Data structure and algorithms is pre-defined.

**Space Complexity**

The Space Complexity defines the memory occupied by a particular Data Structure, the less memory it occupies the best Space complexity it has.

**Why do we need Data Structures?**

A Data Structure is a method of organizing data in a particular manner, in real-world we deal with a huge amount of data so for that we need different kinds of data structure so we could store all the data in an organized manner, and use all the data in an efficient way. There are three main reasons why do we need data structures.

- Data Searching
- Processor Speed
- Multiple Requests.

**Data Searching**

Real-World problems deal with a huge amount of data and searching operations are quite slow, on your PC if you try to search for a file, stored deep down in some directory the searching process of your system can take 5 to 10 seconds to search that file.

Now think of a searching a file amongst a hundred million others, it might take 1 to 2 minutes even by a high-end computer to find that file. Here Data Structure comes in play a proper data structure which store files in an organized manner can find the requested file in no time because it knows where the file is exactly located.

**Processor Speed**

With a large number of Data, even high-end processor shows limited results. If we have an efficient data structure with an effective algorithm, the load on the processor would decrease and we will provide impressive results.

**Multiple Requests**

Companies like Google, Facebook, Netflix, etc has millions of users and multiple requests are common for them so how they handle all these requests, they use effective data structures and algorithms so the request would not through much load on their server.

In real-world effective data structures and algorithms is the key feature of every successive tech business model.

**Complexity Cases**

There are three main complexity cases related to the time complexity of an algorithm and data structure.

- Worst Case
- Average Case
- Best Case.

**Worst Case**

The worst case of any Data structure operations signifies the maximum time taken by that operation. If there are n numbers of data sets in a Data structure and the Data operation take **n** or more than **n** number of steps or time to complete the operation than it would be considered as the worst case of that operation.

We can represent it with a mathematical function such as f(n), it becomes the function of n.

**Average Case**

If the Data Operations take average steps or time to complete its operations and give proper result it would be considered as the average case of that Data Operation.

**Best Case**

If the Operations take the lest steps or time, to calculate the result from a Data Structure it would be considered as the Best case.

**Data Structure basic Terminology**

Terminology |
Description |

Data | Set of Values |

Data Item | A single unit of Values |

Group Items | Group of Data Items |

Elementary Items | Atomic data that cannot be divided further |

Attribute and Entity | Kind of variable in which we can assign values |

Entity Set | Entities of similar attributes |

Field | The field is a single elementary unit of information representing an attribute of an entity. |

Record | Collection of Fields |

File | Collection of records. |