8/22/25, 3:54 PM DSA Tutorial - GeeksforGeeks
Search...
DSA Course DSA Tutorial Data Structures Algorithms Array Strings Linked List Stack Queue
DSA Tutorial
Last Updated : 19 Aug, 2025
Data structures manage how data is stored and accessed, while
Algorithms focus on processing this data. Examples of data structures are
Array, Linked List, Tree and Heap, and examples of algorithms are Binary
Search, Quick Sort and Merge Sort.
Why to Learn DSA?
Foundation for almost every software like GPS, Search Engines, AI
ChatBots, Gaming Apps, Databases, Web Applications, etc
Top Companies like Google, Microsoft, Amazon, Apple, Meta and
many other heavily focus on DSA in interviews.
Learning DSA boosts your problem-solving abilities and make you a
stronger programmer.
Try our free courses GfG 160 and DSA Skillup with daily topic
coverage, notes, quizzes and most asked coding problems.
How to learn DSA?
1. Learn at-least one programming language (C++, Java, Python or
JavaScript) and build your basic logic.
2. Learn about Time and Space complexities
3. Learn Data Structures (Arrays, Linked List, etc) and Algorithms
(Searching, Sorting, etc).
4. Once you learn main topics, it is important to solve coding problems
against some predefined test cases,
We use
5. cookies
Solvetoproblems
ensure you have the best
daily usingbrowsing
GfGexperience
Problem onof
ourthe
website.
Day By
using our site, you acknowledge that you have read and understood our Cookie Policy & Got It !
Privacy Policy
[Link] 1/10
8/22/25, 3:54 PM DSA Tutorial - GeeksforGeeks
Roadmap to learn DSA Visit Course
1. Logic Building
Once you have learned basics of a programming language, it is
recommended that you learn basic logic building
Logic Building Guide
Quiz on Logic Building
2. Learn about Complexities
To analyze algorithms, we mainly measure order of growth of time or
space taken in terms of input size. We do this in the worst case scenario in
most of the cases. Please refer the below links for a clear understanding of
these concepts.
Complexity Analysis Guide
Quiz on Complexity Analysis
We use
3. cookies
Arrayto ensure you have the best browsing experience on our website. By
using our site, you acknowledge that you have read and understood our Cookie Policy &
Privacy Policy
[Link] 2/10
8/22/25, 3:54 PM DSA Tutorial - GeeksforGeeks
Array is a linear data structure where elements are allocated contiguous
memory, allowing for constant-time access.
Array Guide
Quiz on Arrays
4. Searching Algorithms
Searching algorithms are used to locate specific data within a large set of
data. It helps find a target value within the data. There are various types
of searching algorithms, each with its own approach and efficiency.
Searching Guide
Quiz on Searching
5. Sorting Algorithm
Sorting algorithms are used to arrange the elements of a list in a specific
order, such as numerical or alphabetical. It organizes the items in a
systematic way, making it easier to search for and access specific elements.
Sorting Guide
Quiz on Sorting
6. Hashing
Hashing is a technique that generates a fixed-size output (hash value) from
an input of variable size using mathematical formulas called hash
functions. Hashing is commonly used in data structures for efficient
searching, insertion and deletion.
Hashing Guide
Quiz on Hashing
7. cookies
We use Two Pointer
to ensure youTechnique
have the best browsing experience on our website. By
using our site, you acknowledge that you have read and understood our Cookie Policy &
Privacy Policy
[Link] 3/10
8/22/25, 3:54 PM DSA Tutorial - GeeksforGeeks
In Two Pointer Technique, we typically use two index variables from two
corners of an array. We use the two pointer technique for searching a
required point or value in an array.
Two Pointer Technique
Quiz on Two Pointer Technique
8. Window Sliding Technique
In Window Sliding Technique, we use the result of previous subarray to
quickly compute the result of current.
Window Sliding Technique
Quiz on Sliding Window
9. Prefix Sum Technique
In Prefix Sum Technique, we compute prefix sums of an array to quickly
find results for a subarray.
Prefix Sum Technique
Quiz on Prefix Sum
10. String
String is a sequence of characters, typically immutable and have limited
set of elements (lower case or all English alphabets).
Strings Guide
Quiz on Strings
11. Recursion
Recursion is a programming technique where a function calls itself within
its own definition. It is usually used to solve problems that can be broken
We use cookies to ensure you have the best browsing experience on our website. By
using down into
our site, you smaller that
acknowledge instances of the
you have read same problem.
and understood our Cookie Policy &
Privacy Policy
Recursion Guide
[Link] 4/10
8/22/25, 3:54 PM DSA Tutorial - GeeksforGeeks
Quiz on Recursion
12. Matrix/Grid
Matrix is a two-dimensional array of elements, arranged in rows and
columns. It is represented as a rectangular grid, with each element at the
intersection of a row and column.
Matrix Guide
Quiz on Matrix/Grid.
13. Linked List
Linked list is a linear data structure that stores data in nodes, which are
connected by pointers. Unlike arrays, nodes of linked lists are not stored in
contiguous memory locations and can only be accessed sequentially,
starting from the head of list.
Linked List Guide
Quiz on Linked List
14. Stack
Stack is a linear data structure that follows the Last In, First Out (LIFO)
principle. Stacks play an important role in managing function calls,
memory, and are widely used in algorithms like stock span problem, next
greater element and largest area in a histogram.
Stack Guide
Quiz on Stack
15. Queue
Queue is a linear data structure that follows the First In, First Out (FIFO)
We use cookies toQueues
principle. ensure you play
have the
anbest browsing experience
important role inonmanaging
our website. By
tasks or data in
using our site, you acknowledge that you have read and understood our Cookie Policy &
order, scheduling and message handling systems.
Privacy Policy
[Link] 5/10
8/22/25, 3:54 PM DSA Tutorial - GeeksforGeeks
Queue Guide
Quiz on Queue
16. Deque
A deque (double-ended queue) is a data structure that allows elements to
be added or removed from both ends efficiently.
Deque Guide
Quiz on Deque
17. Tree
Tree is a non-linear, hierarchical data structure consisting of nodes
connected by edges, with a top node called the root and nodes having
child nodes. It is widely used in file systems, databases, decision-making
algorithms, etc.
Tree Guide
Quiz on Tree
18. Heap
Heap is a complete binary tree data structure that satisfies the heap
property. Heaps are usually used to implement priority queues, where the
smallest or largest element is always at the root of the tree.
Heap Guide
Quiz on Heap
19. Graph
Graph is a non-linear data structure consisting of a finite set of vertices(or
nodes) and a set of edges(or links)that connect a pair of nodes. Graphs are
We use cookiesused
widely to ensure
to you have the best
represent browsing experience
relationships on our website.
between By
entities.
using our site, you acknowledge that you have read and understood our Cookie Policy &
Graph Guide Privacy Policy
[Link] 6/10
8/22/25, 3:54 PM DSA Tutorial - GeeksforGeeks
Quiz on Graph
20. Greedy Algorithm
Greedy Algorithm builds up the solution one piece at a time and chooses
the next piece which gives the most obvious and immediate benefit i.e.,
which is the most optimal choice at that moment. So the problems where
choosing locally optimal also leads to the global solutions are best fit for
Greedy.
Greedy Algorithms Guide
Quiz on Greedy
21. Dynamic Programming
Dynamic Programming is a method used to solve complex problems by
breaking them down into simpler subproblems. By solving each
subproblem only once and storing the results, it avoids redundant
computations, leading to more efficient solutions for a wide range of
problems.
Dynamic Programming Guide
Quiz on DP
22. Advanced Data Structure and Algorithms
Advanced Data Structures like Trie, Segment Tree, Red-Black Tree and
Binary Indexed Tree offer significant performance improvements for
specific problem domains. They provide efficient solutions for tasks like
fast prefix searches, range queries, dynamic updates, and maintaining
balanced data structures, which are crucial for handling large datasets and
real-time processing.
Trie
We use cookies to ensure you have the best browsing experience on our website. By
Segment
using our site, Tree that you have read and understood our Cookie Policy &
you acknowledge
Red-Black Tree Privacy Policy
[Link] 7/10
8/22/25, 3:54 PM DSA Tutorial - GeeksforGeeks
Binary Indexed Tree
Practice Advanced Data Structures
23. Other Algorithms
Bitwise Algorithms: Operate on individual bits of numbers.
Bitwise Algorithms Guide
Quiz on Bit Magic
Backtracking Algorithm : Follow Recursion with the option to revert and
traces back if the solution from current point is not feasible.
Backtracking Guide
Quiz on Backtracking
Divide and conquer: A strategy to solve problems by dividing them into
smaller subproblems, solving those subproblems, and combining the
solutions to obtain the final solution.
Divide and Conquer Guide
Quiz on Divide and Conquer
Branch and Bound : Used in combinatorial optimization problems to
systematically search for the best solution. It works by dividing the
problem into smaller subproblems, or branches, and then eliminating
certain branches based on bounds on the optimal solution. This process
continues until the best solution is found or all branches have been
explored.
Branch and Bound Algorithm
Geometric algorithms are a set of algorithms that solve problems related
to shapes, points, lines and polygons.
Geometric
We use cookies to ensureAlgorithms
you have the best browsing experience on our website. By
using our site, you acknowledge
Practice Geometric that you have read and understood our Cookie Policy &
Algorithms
Privacy Policy
[Link] 8/10
8/22/25, 3:54 PM DSA Tutorial - GeeksforGeeks
Randomized algorithms are algorithms that use randomness to solve
problems. They make use of random input to achieve their goals, often
leading to simpler and more efficient solutions. These algorithms may not
product same result but are particularly useful in situations when a
probabilistic approach is acceptable.
Randomized Algorithms
Comment More info Campus Training Program
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate
Tower, Sector- 136, Noida, Uttar Pradesh
(201305)
Registered Address:
K 061, Tower K, Gulshan Vivante
Apartment, Sector 137, Noida, Gautam
Buddh Nagar, Uttar Pradesh, 201305
Advertise with us
Company Explore
About Us POTD
Legal Job-A-Thon
Privacy
We use cookies to ensure Policythe best browsing experience on our website. By Connect
you have
Careers
using our site, you acknowledge that you have read and understood our Cookie Policy &Community
Contact Us Privacy Policy Videos
[Link] 9/10
8/22/25, 3:54 PM DSA Tutorial - GeeksforGeeks
Corporate Solution Blogs
Campus Training Program Nation Skill Up
Tutorials Courses
Programming Languages IBM Certification
DSA DSA and Placements
Web Technology Web Development
AI, ML & Data Science Data Science
DevOps Programming Languages
CS Core Subjects DevOps & Cloud
Interview Preparation GATE
GATE Trending Technologies
School Subjects
Software and Tools
Offline Centers Preparation Corner
Noida Aptitude
Bengaluru Puzzles
Pune GfG 160
Hyderabad DSA 360
Patna System Design
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By
using our site, you acknowledge that you have read and understood our Cookie Policy &
Privacy Policy
[Link] 10/10