A `data structure`

is a type of storage that is used to **organize and store** the data.

It’s very difficult to choose the correct data structure for your project based on your requirements. If you wish to store data in a **sequential manner in a memory** for example, you can use the **Array** as a data structure.

In general, there are two types of `data structures`

:

So here both the linear and non linear data structure can be used to store the data in a well organised manner.

## Takeaways

A `linear data structure`

includes arrays, linked lists,queues and stacks.

A `non-linear data structure`

is made up of trees and graphs.

## Linear data structure

A `linear data structure`

is one in which the components are stored in a **sequential order and are linked** to the elements before and after them. Because the items are kept in a sequential order, they can be accessed or traversed in a single operation.

Because the elements are **progressively ordered in memory**, linear data structures are easy to build. An array’s data items are traversed one by one, and you can only access one element at a time.

**Array**, **Stack**, **Queue**, **Linked list**, and other linear data structures are examples. Array is a collection of elements with the same data types, all of which are stored in a single memory block.

The data elements in the stack and queue are in a specific sequence, i.e., linear, and they work on the **Last in First Out (LIFO)** and **First in First Out (FIFO)** principles, respectively.

**Let’s take a closer look at each linear data structure.**

### 1. **Array**

An array is made up of data components of the same type. For example, **instead of creating 10** integer type variables to store the roll numbers of ten students, we will create an array with a size of ten. Visit Array Data Structure to learn more.

### 2. **Stack**

The **LIFO (Last In First Out)** technique is used to store elements in a stack data structure.

To put it another way, the last element in a stack will be eliminated first. It works similarly to a stack of plates, with the final plate on the **pile being removed first**. Visit Stack Data Structure to learn more.

### 3. **Queue**

Because the data is stored progressively, this structure is **virtually identical** to a stack. The only difference here is that, queue data structure **here follows the `FIFO**, or`

First In-First Out`, which states that the first added item should be the first to leave the queue. In a queue, the phrases “front” and “back” are applied. Visit Queue Data Structure to learn more.

### 4. **Linked list**

`Linked lists`

are data structures that store data in the form of nodes, each of which contains a pointer and a data item. The **pointer’s function** is to point or direct to the node next to the item in the sequence.

A **linked list** can store data in any format which includes strings, integers, and characters. A linked list can hold both sorted and unsorted data, as well as duplicate and unique entries. Visit Linked List Data Structure to learn more.

## What is Non-linear Data Structure?

When the data items or pieces of a data structure are not placed sequentially or linearly, the data structure is called to be `non-linear`

.

Because the items are not stored sequentially, they cannot be traversed or retrieved in a single iteration that is the single level is not engaged in non-linear data structures. In **terms of implementation**, a **non-linear data** structure is difficult. When compared to linear data structures, they make better use of system memory.

**Tree** and **graph** are examples of non-linear data structures. The tree data structure contains a hierarchical relationship. Non-linear data structures are memory efficient because they do not require a memory allocation in advance, as previously stated.

### 1. **Tree:**

A `tree`

data structure is made up of nodes that are linked together. A tree’s structure is hierarchical, forming a relationship similar to that of a parent and a kid. The tree’s structure is designed so that each parent-child node relationship has only one connection. There should only be one path from the root to each node in the tree.**Binary tree, AVL tree, Binary search tree**, and more forms of trees exist based on their structures. Visit Tree Data Structure to learn more.

### 2. **Graph:**

`Graph`

is a nonlinear data structure with a fixed amount of both vertices and edges, with the edges connecting the vertices. The edges represent the relationship between the vertices, whereas the vertices are utilized to store the data elements.**A graph` is employed** in a variety of real-world situations, including circuit networks, telephone networks, and social networks such as Facebook and LinkedIn. A single person on Facebook is referred to as a node, and the connections between users are referred to as edges. Visit Graph Data Structure to learn more.

## Differences between the linear and non linear data structure

Linear Data Structure | Non Linear Data Structure | |
---|---|---|

`Overview` | The elements are joined to one another and arranged sequentially or linearly in this structure. | The elements are grouped hierarchically or non-linearly in this structure. |

`Types` | A linear data structure includes arrays, linked lists,queues and stacks. | A non-linear data structure is made up of trees and graphs. |

`Implementation` | They are simple to execute because to the linear organisation. | They’re challenging to put in place because of the non-linear structure. |

`Traversal` | Because a linear data structure has only one level, traversing each data item requires only one run. | A non-linear data structure’s data elements cannot be retrieved in a single run. It needs traversing many runs. |

`Arrangement` | Each data item is linked to the one before it and the one after it. | Each item is linked to several others. |

`Memory Utilization` | The memory usage is inefficient in this case. | Memory is used to its full potential in this way. |

`Levels` | There is no hierarchy in this data structure, and all data items are grouped on a single level. | The data items are placed in various levels in this method. |

`Time Complexity` | With increasing input size, the time complexity of linear data structures increases. | With increasing input size, the time complexity of non-linear data structures frequently stays the same. |

`Applications` | Linear data structures are mostly utilised in software development. | Image processing and Artificial Intelligence both use non-linear data structures. |

## Conclusion

- Array and linked list are
**most frequently**used linear data structures. `Linear`

and`non linear data`

structure are bery useful to store the data in**well organised manner**.`Non-linear data`

structures are more efficient over**linear one’s in terms**of memory.`Linear data structures`

are simpler one’s to exectute rather than the**non-linear one’s**.