Different types of data structures are used for different kinds of purposes. Some of them are highly specialiased at specific tasks. Applications of data structures are listed below.

### Applications of **Arrays**

- To implement mathematical vectors and matrices.
- To model sets or collections in computer programming.
- To implement other data structures such as lists, queue, stack and heaps.
- Sometimes used to emulate in-program dynamic memory allocation.

### Applications of **Linked lists**

- To implement other data structures such as queues,stacks,trees…etc
- Used for dynamic memory allocation.
- For manipulating polynomials, representing sparse matrices…etc
- Doubly linked list can be used in navigation systems.
- Doubly linked list is also used by various application to implement Undo and Redo functionality.
- Advanced data structures like Fibonnacci Heap are implemented using circular doubly linked lists.

### Applications of **Trees **

- To search an element in a set quickly, Binary Search Trees(BSTs) are used.
- Heap sort is done by a kind of tree called Heap.
- Tries are modified version of trees used to store routing informations in routers.
- Compiler use a syntax tree to parse program you write.
- Shortest path trees and spanning Trees are used in bridges and routers.

### Applications of **Stack**s

LIFO property of Stack can be usefull in following applications.

- Evaluating Expressions.
- Converting between expressions.
- Back tracking.
- Parsing context-free languages.
- Recursion removal.
- Tree and graph traversal.

### Applications of **Queue**s

Following applications requiring FIFO storage and are implemented using Queues.

- Manage resource sharing such as CPU scheduling, disk scheduling..etc
- When data is send and recieved betwwen two processos not necessivly at same rate.

### Applications of **Graphs**

- Transportation networks that like the one used by Google Map.
- Representation of molecular structure.
- Finding shortest path.
- Airline network.
- Social networks.