##### Data Structure: Types and Applications

**Data structure** is a storage that is used to store and arrange data. It is a way of constructing data on a computer so that it can be accessed and updated competently. Depending on our need and project, it is important to choose the right data structure. For example, if we want to store data sequentially in the memory, then we can go for the Array data structure. Data Structures are used to organise and store data to apply it in an effective way when executing data operations.

- Provides an easy way of organizing, retrieving, managing and storing data.
- Used for processing, retrieving and storing data.Â
- Makes it easy for users to access and work with the data they need in appropriate ways.
- Frames the organization of information so that machines and humans can better understand it.
- May be selected or designed to store data for the purpose of using it with various algorithms.
- Algorithm’s basic operations are tightly coupled to the data structure’s design.
- Each data structure contains information about the data values and data relationships.
- Data structures bring together the data elements in a logical way.
- Data structures facilitate the effective use, persistence and sharing of data.
- They provide a formal model that describes the way the data elements are organized.

Types of Data Structure

Types of Data Structure

Basically, Data Structures are divided into two categories:

**Linear Data Structures:**In linear data structures, the elements are arranged in sequence one after the other. Since elements are arranged in particular order, they are easy to implement. However, when the complexity of the program increases, the linear data structures might not be the best choice because of operational complexities.**Array Data Structure**,**Stack Data Structure**,**Queue Data Structure**,**Linked List Data Structure**etc. are some popular Linear Data Structures.

**Non-linear Data Structures:**Unlike linear data structures, elements in non-linear data structures are not in any sequence. Instead they are arranged in a hierarchical manner where one element will be connected to one or more elements.**Graph Data Structure**and**Trees Data Structure**are two popular Non-linear Data Structures. Adjacency Matrix, Strongly Connected Components, Spanning Tree and Minimum Spanning Tree, Adjacency List etc. are the examples of Graph Data Structure. Binary Search Tree, Binary Tree, Red-Black Tree, B-Tree, B+ Tree, AVL Tree etc. are the examples of Tree Data Structure.

Applications of Data Structure

Applications of Data Structure

Data structures assemble the data elements in a logical way and facilitate the efficient use, continuation and sharing of data. They provide a formal model that describes the way the data elements are organized. Data structures are the building blocks for more basic applications. They make appropriate storage and management of data for these applications:

**Linked List**

- Implements stacks, queues, binary trees and graphs of predefined size.
- Implements dynamic memory management functions of operating system.
- Polynomial implementation for mathematical operations
- Circular linked list is used to implement OS or application functions that require round robin execution of tasks.
- Circular linked list is used in a slide show where a user wants to go back to the first slide after last slide is displayed.
- When a user uses the alt+tab key combination to browse through the opened application to select a desired application
- Doubly linked list is used in the implementation of forward and backward buttons in a browser to move backwards and forward in the opened pages of a website.
- Circular queue is used to maintain the playing sequence of multiple players in a game.

**Arrays**

- Store list of data elements belonging to same data type
- Auxiliary storage for other data structures
- Storage of binary tree elements of fixed count
- Storage of matrices

**Queues**

- It is used in breadth search operation in graphs.
- Job scheduler operations of OS like a print buffer queue, keyboard buffer queue to store the keys pressed by users
- Job scheduling, CPU scheduling, Disk Scheduling
- Priority queues are used in file downloading operations in a browser
- Data transfer between peripheral devices and CPU.
- Interrupts generated by the user applications for CPU
- Calls handled by the customers in BPO

**Stacks**

- Temporary storage structure for recursive operations
- Auxiliary storage structure for nested operations, function calls, deferred/postponed functions
- Manage function calls
- Evaluation of arithmetic expressions in various programming languages
- Conversion of infix expressions into postfix expressions
- Checking syntax of expressions in a programming environment
- Matching of parenthesis
- String reversal
- In all the problems solutions based on backtracking.
- Used in depth first search in graph and tree traversal.
- Operates System functions
- UNDO and REDO functions in an editor.

**Trees**

- Implements the hierarchical structures in computer systems like directory and file system
- Implements the navigation structure of a website
- Code generation like Huffmanâ€™s code
- Decision making in gaming applications
- Implementation of priority queues for priority based OS scheduling functions
- Parsing of expressions and statements in programming language compilers
- For storing data keys for DBMS for indexing
- Spanning trees for routing decisions in computer and communications networks
- Hash trees
- Path-finding algorithm to implement in AI, robotics and video games applications

**Graphs**

- Represent networks and routes in communication, transportation and travel applications
- Routes in GPS
- Interconnections in social networks and other network based applications
- Map applications
- Ecommerce applications to present user preferences
- Utility networks to identify the problems posed to municipal or local corporations
- Resource utilization and availability in an organization
- Document link map of a website to display connectivity between pages through hyperlinks
- Robotic motion and neural networks

**also read:
**

HTML |
DATA STRUCTURE |

DBMS |
REASONING |

C PROGRAM |
APTITUDE |

E-LEARNING |