# Data Structures Tutorial

The data structure is a way of storing and organizing data in a computer system. So that we can use the data quickly, which means the information is stored and held in such a way that it can be easily accessed later at any time. Data structures are used widely in almost every aspect of computer science, such as Operating systems, Compiler design, Artificial intelligence, Computer Graphics etc.

There are two types of data structure:

1. Primitive data structure

2. Non-primitive data structure

### Primitive data structure

The primitive data structure can be directly controlled by computer commands. That means it is defined by the system and compiler.

There are the following types of Primitive data structure, that is shown in the figure:

1. Integer

2. Character

3. Double

4. Float

5. String

**Integer:** In the integer, it
includes all mathematical values, but it is not include decimal value. It is
represented by the int keyword in the program.

**Character:** The character is
used to define a single alphabet in the programming language. It is represented
by the char keyword in the program.

**String:** The group of the
character is called a string. It is represented by the string keyword in the
program. The string is written with a double quotation mark ("-"). For
example: "My name is Bob".

**Float and Double: **Float and
double is used for real value.

### Non-primitive data structure

The Non-primitive data structure cannot be directly controlled by computer commands. The Non-primitive data structure is derived from the primitive data structure.

There are two types of non-primitive data structure:

1. Linear data structure

2. Non-linear data structure

### Linear data structure

Linear data structures are those
data structures in which data elements are stored and organized in a linear
manner, in which one data element is connected to another as a line. **For example**, array, linked list, queue,
stack.

### Non-linear data structure

Non-linear data structures are those
data structures in which data elements are not organized in a linear manner. In
this, a data element can be associated with any other data element. **For example**, tree and graph.

### Data Structure Operations

Various data structure operations are used to process the data in a data structure which is as follows:

**Traversing:**Visiting each element of the data structure only once is called traversing.**Searching:**Finding the location of the record or data in the data structure is called searching.**Inserting:**Adding the same type of element to the data structure is called insertion. An element can be added anywhere in the data structure.**Deleting:**Removing an element from a data structure is called Deletion. An element can also be removed from anywhere in a data structure.**Sorting:**Arranging a record in a logical order in the data structure is called shorting.**Merging:**In the data structure, the record is stored in many different files. Adding these different files to a single file is called merging.

### Algorithm

An algorithm is a finite number of steps of well-defined instructions for solving a specific problem. The algorithm is used to read any problem and define its solution. Time complexity and space complexity is checked by the algorithm.

### Time complexity

The time complexity of an algorithm is the amount of time the algorithm takes to complete its process. Time complexity is calculated by calculating the number of steps performed by the algorithm to complete the execution.

### Space complexity

The space complexity of an algorithm is the amount of memory used by the algorithm. Space complexity includes two spaces: Auxiliary space and Input space. The auxiliary space is the temporary space or extra space used during execution by the algorithm. The space complexity of an algorithm is expressed by **Big O (O(n))** notation. Many algorithms have inputs that vary in memory size. In this case, the space complexity that is there depends on the size of the input.

## Data Structure Index

- Data Structure
- Asymptotic Notation
- Structure and Union
- Array
- Linked list
- Type of Linked list
- Advantages and Disadvantages of linked list
- Queue
- Implementation of Queue
- Stack
- Implementation of Stack
- Sorting
- Insertion sort
- Quick sort
- Selection sort
- Heap sort
- Merge sort
- Bucket sort
- Count sort
- Radix sort
- Shell sort
- Tree
- Traversal of the binary tree
- Binary search tree
- Graph
- Spanning tree
- Linear Search
- Binary Search
- Hashing
- Collision Resolution Techniques

## Misc

- Priority Queue in Data Structure
- Deque in Data Structure
- Difference Between Linear And Non Linear Data Structures
- Queue Operations In Data Structure
- About Data Structures
- Data Structures Algorithms
- Types of Data Structures
- Big O Notations
- Introduction to Arrays
- Introduction to 1D-Arrays
- Operations on 1D-Arrays
- Introduction to 2D-Arrays
- Operations on 2D-Arrays
- Strings in Data Structures
- String Operations
- Application of 2D array
- Bubble Sort in Data Structures
- Insertion Sort in Data Structures
- Sorting Algorithms in Data Structures
- What is DFS Algorithm
- What Is Graph Data Structure
- What is the difference between Tree and Graph
- What is the difference between DFS and BFS
- Bucket Sort
- Dijkstra’s vs Bellman-Ford Algorithm
- Linear Queue Data Structure in C
- Stack Using Array
- Stack Using Linked List
- Recursion in Fibonacci
- Stack vs Array
- What is Skewed Binary Tree
- Primitive Data Structure in C
- Dynamic memory allocation of structure in C
- Application of Stack in Data Structures
- Binary Tree in Data Structures
- Heap Data Structure
- Recursion - Factorial and Fibonacci
- What is B tree
- what is B+ tree
- Huffman tree in Data Structures
- Insertion Sort vs Bubble Sort
- Adding one to the number represented an array of digits
- Bitwise Operators and their Important Tricks
- Blowfish algorithm
- Bubble Sort vs Selection Sort
- Hashing and its Applications
- Heap Sort vs Merge Sort
- Insertion Sort vs Selection Sort
- Merge Conflicts and ways to handle them
- Difference between Stack and Queue
- AVL tree in data structure c++
- Bubble sort algorithm using Javascript
- Buffer overflow attack with examples
- Find out the area between two concentric circles
- Lowest common ancestor in a binary search tree
- Number of visible boxes putting one inside another
- Program to calculate the area of the circumcircle of an equilateral triangle
- Red-black Tree in Data Structures
- Strictly binary tree in Data Structures
- 2-3 Trees and Basic Operations on them
- Asynchronous advantage actor-critic (A3C) Algorithm
- Bubble Sort vs Heap Sort
- Digital Search Tree in Data Structures
- Minimum Spanning Tree
- Permutation Sort or Bogo Sort
- Quick Sort vs Merge Sort