10/28/25, 8:36 PM Google Gemini
Data Structure Interview Checklist: Functions & Problems
This document outlines the specific functions and standard algorithmic questions frequently asked in
technical interviews and exams, organized by the primary data structure involved.
1. Stack (LIFO) - Problem Focus
Stacks test your ability to handle order of operations, reversal, and tracking previous/future elements
efficiently.
A. Core Operations (Implementation)
1. Basic Functions: Implement push() , pop() , peek() , and isEmpty() .
2. Implementation Method: Implement a Stack using an Array, or implement a Stack using a Linked
List.
B. Algorithmic Problems
3. Parentheses Balancing / Valid Strings: Write a function to check if a string contains balanced
and properly nested parentheses, brackets, and braces.
4. Min Stack (Design Problem): Design a stack that supports push , pop , top , and getMin in
O(1) time complexity.
5. Expression Conversion: Convert an Infix expression (e.g., A + B * C ) to Postfix or Prefix
notation.
6. Expression Evaluation: Write a function to evaluate a Postfix (Reverse Polish Notation)
expression.
7. Next Greater Element: Find the next greater element for every element in an array (or circular
array).
8. Largest Rectangular Area in Histogram: Find the largest area of a rectangle that can be formed
within a histogram.
9. Trapping Rain Water (Stack-based solution): Calculate the maximum amount of water that can
be trapped between bars.
10. Implement Queue using Stacks: Use two stacks to implement the basic queue operations
( enqueue and dequeue ).
2. Queue (FIFO) - Problem Focus
Queues test your understanding of ordered processing, fairness, and level-by-level traversal.
A. Core Operations (Implementation)
11. Basic Functions: Implement enqueue() , dequeue() , front() , and rear() .
12. Implementation Method: Implement a Queue using an Array (often Circular Array) or using a
Linked List.
13. Dequeue (Double-Ended Queue) Operations: Implement insertFront , insertRear ,
deleteFront , and deleteRear .
[Link] 1/2
10/28/25, 8:36 PM Google Gemini
B. Algorithmic Problems
14. Breadth-First Search (BFS): Implement the BFS traversal algorithm for a Tree or Graph.
15. Level Order Traversal: Traverse a tree level by level (a direct application of BFS).
16. Sliding Window Maximum/Minimum (using Deque): Find the maximum or minimum element in
every contiguous subarray (window) of size k .
17. Circular Tour (Gas Station Problem): Determine a starting point in a circular route to complete
the tour given gas and cost at each station.
18. Priority Queue Implementation: Understanding how to implement a Priority Queue (often
backed by a Heap, but operations are queue-like).
19. Implement Stack using Queues: Use two queues to implement the basic stack operations
( push and pop ).
3. Array (Indexed Access) - Problem Focus
Arrays are the basis for nearly all sorting, searching, and in-place manipulation problems, focusing
heavily on pointer/index management.
A. Searching and Sorting
20. Binary Search: Implement recursive and iterative versions of binary search.
21. Sorting Algorithms: Implement core sorting methods like Quick Sort, Merge Sort, and Heap Sort
(Heap Sort relies on an array-based binary heap).
B. Manipulation & Pointers
22. Two Sum / Three Sum / K-Sum: Find all pairs, triplets, or k -tuples in an array that sum up to a
target value.
23. Maximum Subarray Sum (Kadane's Algorithm): Find the contiguous subarray within a given
array that has the largest sum.
24. Array Rotation: Rotate an array to the left or right by k positions (often required to be done in-
place).
25. Merge Sorted Arrays: Merge two sorted arrays into a single sorted array (often in-place).
26. Finding Duplicates/Missing Numbers: Identify a single duplicate, multiple duplicates, or a
missing number in an array, often using index-based manipulation.
27. Set Matrix Zeroes: Given a 2D matrix, if an element is 0, set its entire row and column to 0 (often
required to be done in-place using the matrix itself for tracking).
28. Spiral Matrix Traversal: Traverse and return all elements of a 2D array in spiral order.
[Link] 2/2