# Data Structures Tutorial

Data Structures (DS) tutorial provides basic and advanced concepts of Data Structure. Our Data Structure tutorial is designed for beginners and professionals.

Data Structure is a way to store and organize data so that it can be used efficiently.

Our Data Structure tutorial includes all topics of Data Structure such as Array, Pointer, Structure, Linked List, Stack, Queue, Graph, Searching, Sorting, Programs, etc.

### What is Data Structure?

The data structure name indicates itself that coordinating the data in memory. There are numerous methods of getting sorted out the data in the memory as we have just observed one of the data structures, i.e., exhibit in C language. Cluster is an assortment of memory components in which data is put away consecutively, i.e., in a steady progression. As such, we can say that cluster stores the components in a ceaseless way. This association of data is finished with the assistance of a variety of data structures. There are additionally alternate approaches to sort out the data in memory. We should see the various sorts of data structures.

The data structure isn’t any programming language like C, C++, java, and so on It is a bunch of calculations that we can use in any programming language to structure the data in the memory.

To structure the data in memory, ‘n’ number of calculations were proposed, and every one of these calculations are known as Abstract data types. These theoretical data types are the arrangement of rules.

### Types of Data Structures

There are two types of data structures:

- Primitive data structure
- Non-primitive data structure

**Primitive Data structure**

The primitive data structures are primitive data types. The int, char, float, double, and pointer are the primitive data structures that can hold a single value.

**Non-Primitive Data structure**

The non-primitive data structure is divided into two types:

- Linear data structure
- Non-linear data structure

**Linear Data Structure**

The arrangement of data in a sequential manner is known as a linear data structure. The data structures used for this purpose are Arrays, Linked list, Stacks, and Queues. In these data structures, one element is connected to only one another element in a linear form.

**When one element is connected to the ‘n’ number of elements known as a non-linear data structure. The best example is trees and graphs. In this case, the elements are arranged in a random manner.**

We will discuss the above data structures in brief in the coming topics. Now, we will see the common operations that we can perform on these data structures.

**Data structures can also be classified as:**

**Static data structure:**It is a type of data structure where the size is allocated at the compile time. Therefore, the maximum size is fixed.**Dynamic data structure:**It is a type of data structure where the size is allocated at the run time. Therefore, the maximum size is flexible.

### Major Operations

The major or the common operations that can be performed on the data structures are:

**Searching:**We can search for any element in a data structure.**Sorting:**We can sort the elements of a data structure either in an ascending or descending order.**Insertion:**We can also insert the new element in a data structure.**Updation:**We can also update the element, i.e., we can replace the element with another element.**Deletion:**We can also perform the delete operation to remove the element from the data structure.

### Which Data Structure?

A data structure is a method of getting sorted out the data with the goal that it very well may be utilized effectively. Here, we have utilized the word effectively, which regarding both the reality. For instance, a stack is an ADT (Abstract data type) which utilizes either exhibits or connected list data structure for the usage. Accordingly, we infer that we require some data structure to execute a specific ADT.

An ADT determines what can anyone do and data structure advises how it is to be finished. As such, we can say that ADT gives us the diagram while data structure gives the usage part. Presently the inquiry emerges: how might one become acquainted with which data structure to be utilized for a specific ADT?.

As the diverse data structures can be executed in a specific ADT, yet the various usage are looked at for time and space. For instance, the Stack ADT can be actualized by the two Arrays and connected list. Assume the cluster is giving time effectiveness while the connected list is giving space proficiency, so the one which is the most appropriate for the current client’s necessities will be chosen.

### Advantages of Data structures

**The following are the advantages of a data structure:**

**Efficiency:**If the choice of a data structure for implementing a particular ADT is proper, it makes the program very efficient in terms of time and space.**Reusability:**he data structures provide reusability means that multiple client programs can use the data structure.**Abstraction:**The data structure specified by an ADT also provides the level of abstraction. The client cannot see the internal working of the data structure, so it does not have to worry about the implementation part. The client can only see the interface.