When working with data structures, there are several common operations that you will frequently encounter. These operations allow you to manipulate and access the data stored within the structure. In this article, we will explore some of the most commonly used data structure operations and discuss their purpose and functionality.

## Insertion

**Insertion** is the operation of adding an element to a data structure. Depending on the specific structure, insertion may involve finding the appropriate location for the new element and updating any necessary pointers or references.

### Example:

__Linked List:__To insert a new element at the beginning of a linked list, create a new node and update its next pointer to point to the current head of the list. Then, update the head pointer to point to the new node.__Array:__To insert an element at a specific position in an array, shift all elements after that position by one index to make space for the new element. Then, assign the new element to its desired position.

## Deletion

**Deletion** is the operation of removing an element from a data structure. Similar to insertion, deletion may require updating pointers or references in order to maintain the integrity of the structure.

### Example:

__Linked List:__To delete a node from a linked list, find its previous node and update its next pointer to skip over the node being deleted. Then, free up memory occupied by the deleted node.__Array:__To delete an element from an array, shift all elements after that position by one index to fill in the gap left by the deleted element.

## Search

**Search** is the operation of finding a specific element within a data structure. This operation allows you to determine whether an element exists in the structure and, if so, retrieve its value or position.

### Example:

__Binary Search Tree:__To search for a specific value in a binary search tree, start at the root node and compare the Target value with the current node’s value. Based on the comparison result, move to either the left or right subtree until the Target value is found or no more nodes are left to explore.__Hash Table:__To search for a key-value pair in a hash table, compute the hash value for the given key and use it to locate the corresponding bucket. Then, iterate through the elements in that bucket until either a match is found or all elements have been checked.

## Traversal

**Traversal** is the operation of visiting each element in a data structure exactly once. Traversal allows you to access and process all elements stored within a structure.

### Example:

__Tree:__To traverse a tree in pre-order fashion, visit the root node first, then recursively traverse its left subtree followed by its right subtree. This ensures that all nodes are visited in pre-order sequence.__Graph:__To traverse a graph using breadth-first search (BFS), start at an arbitrary vertex and explore all of its neighbors before moving on to their neighbors. Repeat this process until all vertices have been visited.

In conclusion, these are some of the most common operations performed on data structures. Understanding these operations is essential for effectively working with data and building efficient algorithms. By mastering these operations, you will be well-equipped to handle a wide range of data manipulation tasks.