Real-time application of Data Structures
- Databases: Databases use data structures such as trees, heaps, and hash tables to store and retrieve data efficiently.
- Operating systems: Operating systems use data structures such as lists, queues, and stacks to manage tasks, processes, and memory.
- Web search engines: Web search engines use data structures such as inverted indexes and tries to index and search the web efficiently.
- Computer graphics: Computer graphics use data structures such as binary trees, octrees, and meshes to represent and manipulate 3D objects.
- Compilers: Compilers use data structures such as parse trees, symbol tables, and abstract syntax trees to analyze, optimize, and generate code.
- Computer networks: Computer networks use data structures such as graphs, tables, and trees to store and route information.
- Machine learning: Machine learning algorithms use data structures such as matrices, arrays, and trees to store and manipulate data, and to implement models.
- Computer simulations: Computer simulations use data structures such as grids, graphs, and meshes to represent and solve problems in science, engineering, and finance.
- Video games: Video games use data structures such as quadtrees, spatial partitioning, and scene graphs to store and render game objects and environments.
- Financial systems: Financial systems use data structures such as priority queues, heaps, and trees to manage and execute financial transactions, such as stock trades, options, and bonds.
A data structure is a particular way of organizing data in a computer so that it can be used effectively. In this article, the real-time applications of all the data structures are discussed.
Arrays are the simplest data structures that store items of the same data type. A basic application of Arrays can be storing data in tabular format. For example, if we wish to store the contacts on our phone, then the software will simply place all our contacts in an array.
Some other applications of the arrays are:
- Arrangement of the leader-board of a game can be done simply through arrays to store the score and arrange them in descending order to clearly make out the rank of each player in the game.
- A simple question Paper is an array of numbered questions with each of them assigned some marks.
- 2D arrays, commonly known as, matrices, are used in image processing.
- It is also used in speech processing, in which each speech signal is an array.
- Your viewing screen is also a multidimensional array of pixels.
- Book titles in a Library Management Systems.
- Online ticket booking.
- Contacts on a cell phone.
- For CPU scheduling in computer.
- To store the possible moves of chess on a chessboard.
- To store images of a specific size on an android or laptop.
Application of Strings:
- Spam email detection.
- Plagiarism detection.
- Search engine.
- Digital forensic and information retrieval system
- Spell checkers.
- In the database to check valid information of the user
Application of Matrix:
Matrix is an ordered collection of columns and rows of elements. It is necessary to enclose the elements of a matrix within the brackets.
Some applications of a matrix are:
- In geology, matrices are used for making seismic surveys.
- Used for plotting graphs, and statistics and also to do scientific studies and research in almost different fields.
- Matrices are also used in representing real-world data like the population of people, infant mortality rate, etc.
- They are the best representation methods for plotting surveys.
- For refraction and reflection in science optics.
- Electronic circuit and quantum physics.
- Media player.
- Mailing list.
- Symbol table creation.
A linked list is a sequence data structure, which connects elements, called nodes, through links.
Some other applications of the linked list are:
- Images are linked with each other. So, an image viewer software uses a linked list to view the previous and the next images using the previous and next buttons.
- Web pages can be accessed using the previous and the next URL links which are linked using a linked list.
- The music players also use the same technique to switch between music.
- To keep the track of turns in a multi-player game, a circular linked list is used.
- MS-Paint drawings and shapes are connected via a linked list on canvas.
- Escalators — Circular linked List.
- Each of the lines of code in an IDE internally is a record on a doubly-linked list.
- Left/Right swipe on Tinder uses a doubly-linked list.
- Social media content “feeds”.
- Used for symbol table management in a designing compiler
- Used in switching between applications and programs (Alt + Tab) in the Operating system (implemented using Circular Linked List)
- Train coaches are connected to one another in a doubly-linked list fashion.
- It can be used to implement Stacks, Queues, Graphs, and Trees.
- To perform undo operation.
- Back button.[LIFO]
- Syntax in the coding editor.
- History of visited pages.
A stack is a data structure that uses LIFO order.
Some Applications of a stack are:
- Converting infix to postfix expressions.
- Undo/Redo button/operation in word processors.
- Syntaxes in languages are parsed using stacks.
- It is used in many virtual machines like JVM.
- Forward-backward surfing in the browser.
- History of visited websites.
- Message logs and all messages you get are arranged in a stack.
- Call logs, E-mails, Google photos’ any gallery, YouTube downloads, Notifications ( latest appears first ).
- Scratch card’s earned after Google pay transaction.
- Wearing/Removing Bangles, Pile of Dinner Plates, Stacked chairs.
- Changing wearables on a cold evening, first in, comes out at last.
- Last Hired, First Fired - which is typically utilized when a company reduces its workforce in an economic recession.
- Loading bullets into the magazine of a gun. The last one to go in is fired first. Bam!
- Java Virtual Machine.
- Used in IDEs to check for proper parentheses matching
- Media playlist. T o play previous and next song
A queue is a data structure that uses FIFO order.
Some applications of a queue are:
- Operating System uses queues for job scheduling.
- To handle congestion in the networking queue can be used.
- Data packets in communication are arranged in queue format.
- Sending an e-mail, it will be queued.
- Server while responding to request
- Uploading and downloading photos, first kept for uploading/downloading will be completed first (Not if there is threading)
- Most internet requests and processes use queue.
- While switching multiple applications, windows use circular queue.
- In Escalators, Printer spooler, Car washes queue.
- A circular queue is used to maintain the playing sequence of multiple players in a game.
- A queue can be implemented in - Linked List-based Queue, Array-based Queue, Stack-based Queue.
- Uploading and downloading photos, first kept for uploading/downloading will be completed first (Not if there is threading).
- Handle website traffic
- CPU scheduling
- Process scheduling in the kernel.
- Priority queues are used in file downloading operations in a browser
- Vehicle at the toll center.
Application of Sorting Algorithms
- Order things by their value.
- Backend Databases (Merge Sort).
- Playing Cards with your friends (Insertion Sort).
- sort() - uses IntroSort (a hybrid of Quicksort, Heapsort, and Insertion Sort), Faster than qsort()
- Contact list on the phone
- Online shopping . To sort prize in different range . example : flipkart and amazon.
Graph is a data structure where data is stored in a collection of interconnected vertices (nodes) and edges (paths).
Some applications of a graph are:
- Facebook’s Graph API uses the structure of Graphs.
- Google’s Knowledge Graph also has to do something with Graph.
- Dijkstra algorithm or the shortest path first algorithm also uses graph structure to find the smallest path between the nodes of the graph.
- The GPS navigation system also uses shortest path APIs.
- Networking components have a huge application for graph
- Facebook, Instagram, and all social media networking sites every user is Node
- Data organization
- React’s virtual DOM uses graph data structures.
- MS Excel uses DAG (Directed Acyclic Graphs).
- Path Optimization Algorithms, BFS, DFS.
- Recommendation Engines.
- Scientific Computations, Flight Networks, Page ranking.
- Google map to find nearest location.
- Facebook to suggest mutual friends
Trees are hierarchical structures having a single root node.
Some applications of the trees are:
- XML Parser uses tree algorithms.
- The decision-based algorithm is used in machine learning which works upon the algorithm of the tree.
- Databases also use tree data structures for indexing.
- Domain Name Server(DNS) also uses tree structures.
- File explorer/my computer of mobile/any computer
- BST used in computer Graphics
- Posting questions on websites like Quora, the comments are a child of questions.
- Parsers(XML parser).
- Code Compression(zip).
- DOM in Html.
- Evaluate an expression (i.e., parse).
- Integral to compilers/automata theory.
- To store the possible moves in a chess game.
- To store the genealogy information of biological species.
- Used by JVM (Java Virtual Machine) to store Java objects.
Application of Binary Search Tree:
- D Game Engine.
- Computer Graphics Rendering.
- Routing table.
- Used when there is frequent Insertion/Deletion and few searches.
- K -mean Clustering using a red-black tree, Databases, Simple-minded database, searching words inside dictionaries, searching on the web.
- Process Scheduling in Linux.
- More Search and less Insertion/Deletion.
- Data Analysis and Data Mining and the applications which involve more searches.
- Fast full-text search, used in most word processors.
- Dictionary application.
- Autocomplete feature in searching.
- Auto-completing the text and spells checking.
Hash Tables are store data in key-value pairs. It only stores data that has a key associated with it. Inserting and Searching operations are easily manageable while using Hash Tables.
Some applications of a hashtable are:
- Data stored in databases is generally of the key-value format which is done through hash tables.
- Every time we type something to be searched in google chrome or other browsers, it generates the desired output based on the principle of hashing.
- Message Digest, a function of cryptography also uses hashing for creating output in such a manner that reaching the original input from that generated output is almost next to impossible.
- In our computers we have various files stored in it, each file has two very crucial pieces of information that is, the filename and file path, in order to make a connection between the filename to its corresponding file path hash tables are used.
- Social network “feeds”.
- Password hashing.
- Used for fast data lookup - symbol table for compilers, database indexing, caches, Unique data representation.
- To store a set of fixed keywords that are referenced very frequently.
A Heap is a special case of a binary tree where the parent nodes are compared to their children with their values and are arranged accordingly.
Some applications of heaps are:
- In heapsort Algorithm, is an algorithm for sorting elements in either min heap(the key of the parent is less than or equal to those of its children) or max heap(the key of the parent is greater than or equal to those of its children), sorting is done with the creation of heaps.
- Heaps are used to implementing a priority queue where priority is based on the order of heap created.
- Systems concerned with security and embedded system such as Linux Kernel uses Heap Sort because of the O( n log(n) ).
- If we are stuck in finding the Kthsmallest (or largest) value of a number then heaps can solve the problem in an easy and fast manner.
- Used by JVM (Java Virtual Machine) to store Java objects.
APPLICATION OF GREEDY ALGORITHM:
- Dijkstra algorithm.
- Shopping on a tight budget but want to buy gifts for all family members.
- Prim’s and Kruskal’s algorithms are used for finding the minimum spanning trees.
- Used in applications like Google Maps to find the shortest path in a graph.
PRIM’S and KRUSKAL’S
- Used for finding the minimum spanning trees.
APPLICATION OF DYNAMIC PROGRAMMING:
A. Real-life examples
- In Google Maps to find the shortest path between the source and the series of destinations (one by one) out of the various available paths.
- In networking to transfer data from a sender to various receivers in a sequential manner.
B. Applications in Computer science
- Multi-stage graph
- Traveling salesman problem
- Largest common subsequence – to identify similar videos used by youtube
- Optimal search binary tree- to get optimized search results.
- Single source shortest path- Bellman-Ford Algorithm.
- Document Distance Algorithms- to identify the extent of similarity between two text documents used by Search engines like Google, Wikipedia, Quora, and other websites.
- To schedule jobs on a processor.
- To find potential partners.
- In theory, graphics, AI, system.
APPLICATION OF BACKTRACKING:
- Suppose we are coding a chess-playing algorithm and at a certain point, the algorithm finds that a set of steps fails to win. In this situation, the algorithm will reverse back to the safe state and try another possible set of steps.
- Sudoku solver
- 2048 game
- Computer networking.
- To solve problem of the N Queen.
- To solve the problem of the Maze.
- To find the Hamiltonian Path present in a graph.
- To the love problem of Knight’s Tour Problem.
- Binary search can be used in negotiations.
If the seller has a price in mind but does not reveal it, you can name a low bid, to which the seller will respond with a high ask price. You can then raise your bid, and the seller can lower her asking price. Since each of you has an ideal price in mind, the named bids and asks can be roughly halfway toward the price desirable by each side. This is not exactly the binary search algorithm, but very much in the spirit of binary search.
- Hashmap has its internal implementation in the AVL tree.