# Introduction of Data Structures and Algorithms

Hi folks,

This tutorial contains the most important topics of data structure such as Array,Stack,Queue,Linked List etc & also about the algorithms with complexity.

## What do you mean by Data Structure & its type ?

Data structure is a way of storing & organising the data in such a way that we can perform operations on these data in a very easy way.

Data structure is a data organisation,memory management that provides an efficient way to store and access these data.

We can perform different types of operations such insertion,deletion,searching etc.

**There are two types of data structure**

1.Linear Data Structure

2.Non-Linear Data Structure

**1.Linear Data Structure**

When the data elements are stored in a sequential manner then this is known as linear data structure.

Example:

Array,Queue, Linked List

**2.Non-Linear Data Structure**

When the data elements are stored in a non-sequential manner then this is known as non-linear data structure.

Example

Tree,Graph,Matrix etc

**There are some important topic of data structure**

1.Array

2.Stack

3.Queue

4.Linked List

5.Binary Tree

6.Binary search tree

7.Heap

8.Hashing

9.Graph

10.Matrix

## What is an Algorithm ?

An algorithm is a set of instructions that are executed in a certain order to get the desired output.

An algorithm is not a complete program or code,It is just simply thinking the logic before writing the actual code or program.

These codes or programs can be expressed as pseudo code or using flowchart.

## Properties of an Algorithm

**1. Input**– An algorithm should have 1 or more inputs

**2.Output**– An algorithm should have one or more output that meets the desired output

**3.Definiteness**– Every step of the algorithm should be clear and understandable

**4.Correctness**– Every step of an algorithm must generate a correct output.

**5.Finiteness**– An algorithm should terminate with a finite number of outputs.

An algorithm is said to be fast and efficient when it takes less time to execute the program or code & consume less memory,So these things we can analyse on the basis of

1.Time Complexity

2.Space Complexity

**1.Time Complexity**

Time Complexity of an algorithm is way that represents the time taken by an algorithm to complete the program

**2.Space Complexity**

Space Complexity of an algorithm is way that represents the amount of space taken by an algorithm to complete the program

Best of Luck!!!!