0% found this document useful (0 votes)
24 views

100_DataStructures_Algorithms_Projects

Uploaded by

hafsanavera1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

100_DataStructures_Algorithms_Projects

Uploaded by

hafsanavera1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

# Generating the text file with the 100 Data Structures & Algorithms Project Ideas

100 Data Structures & Algorithms Project Ideas

1-20: Basic Data Structures


1. Array Rotation: Implement an algorithm to rotate an array of integers by 'k'
positions.
2. Array Sorting: Implement sorting algorithms (QuickSort, MergeSort, BubbleSort,
InsertionSort, SelectionSort).
3. Palindrome Check: Implement a program to check if a string is a palindrome using
a stack.
4. Array Sum Pairs: Find pairs in an array whose sum equals a given number.
5. Find Missing Number: Given an array of n-1 integers from 1 to n, find the
missing number.
6. Remove Duplicates: Write a function to remove duplicates from a sorted or
unsorted array.
7. Find Union and Intersection: Find the union and intersection of two arrays.
8. Find Maximum Subarray Sum: Implement Kadane's Algorithm to find the maximum sum
subarray.
9. Matrix Multiplication: Multiply two matrices using nested loops.
10. Matrix Transpose: Write a function to transpose a matrix (swap rows with
columns).
11. Find Leaders in an Array: Find all the leaders in an array.
12. Spiral Matrix Traversal: Traverse a matrix in a spiral order.
13. Reverse Array: Reverse an array of integers.
14. 2D Array Search: Search for a given element in a 2D array.
15. Find the Peak Element: Find a peak element in an array (an element greater than
its neighbors).
16. Merge Two Sorted Arrays: Merge two sorted arrays into one sorted array.
17. Rotate Matrix by 90 Degrees: Rotate a matrix by 90 degrees in-place.
18. Partition Array into Two Parts: Partition an array into two subsets with equal
sum.
19. Find the Majority Element: Find the element that appears more than n/2 times in
an array.
20. Find the First Non-repeating Character: Given a string, find the first non-
repeating character.

21-40: Linked Lists


21. Reverse a Linked List: Reverse a singly linked list.
22. Detect Cycle in Linked List: Use Floyd’s Tortoise and Hare algorithm to detect
a cycle.
23. Merge Two Sorted Linked Lists: Merge two sorted linked lists into one sorted
list.
24. Find Middle of a Linked List: Implement a function to find the middle node of a
linked list.
25. Remove N-th Node from End: Remove the N-th node from the end of a linked list.
26. Check Palindrome Linked List: Check if a linked list is a palindrome.
27. Add Two Numbers: Add two numbers represented by linked lists.
28. Intersection of Two Linked Lists: Find the intersection node of two linked
lists.
29. Flatten a Linked List: Flatten a linked list where each node contains a child
linked list.
30. Detect Loop in Linked List: Find if a given linked list contains a loop.
31. Reverse K-group in Linked List: Reverse every k nodes in a linked list.
32. Linked List to Stack: Implement a stack using a linked list.
33. Linked List to Queue: Implement a queue using a linked list.
34. Swap Nodes in Pairs: Swap every two adjacent nodes in a linked list.
35. Remove Duplicates from Sorted Linked List: Remove duplicates from a sorted
linked list.
36. Rotate Linked List: Rotate a linked list by k positions.
37. Flatten a Multilevel Doubly Linked List: Flatten a multilevel doubly linked
list.
38. Palindrome Linked List (Optimized): Use two-pointer technique to check
palindrome.
39. Clone a Linked List with Random Pointers: Implement cloning of a linked list
with random pointers.
40. Reverse Doubly Linked List: Reverse a doubly linked list.

41-60: Stacks and Queues


41. Stack Implementation: Implement a basic stack with push and pop operations.
42. Queue Implementation: Implement a basic queue with enqueue and dequeue
operations.
43. Evaluate Postfix Expression: Write a program to evaluate a postfix expression.
44. Evaluate Infix Expression: Write a program to evaluate an infix expression
using a stack.
45. Implement Stack Using Queue: Implement a stack using two queues.
46. Implement Queue Using Stack: Implement a queue using two stacks.
47. Balanced Parentheses: Check if a string containing parentheses is balanced.
48. Next Greater Element: Find the next greater element for each element in the
array.
49. Largest Rectangle in Histogram: Calculate the largest rectangle that can be
formed in a histogram.
50. Sliding Window Maximum: Find the maximum value in a sliding window of size k.
51. Daily Temperature: Given a list of temperatures, return the number of days
until a warmer temperature.
52. Largest Parenthesis Substring: Find the largest valid parentheses substring.
53. Valid Parentheses String: Check if a string of parentheses is valid.
54. Min Stack: Design a stack that supports push, pop, top, and retrieving the
minimum element.
55. Palindrome Check Using Stack: Check if a string is a palindrome using a stack.
56. Reversing Stack: Reverse the elements of a stack using recursion.
57. Queue with Two Stacks: Implement a queue with two stacks using only enqueue and
dequeue operations.
58. Postfix to Infix Conversion: Convert a postfix expression to infix expression.
59. Infix to Postfix Conversion: Convert an infix expression to postfix expression.
60. Sum of Elements Between Parentheses: Calculate the sum of numbers between
parentheses in an expression.

61-80: Trees
61. Binary Tree Traversals: Implement pre-order, in-order, and post-order tree
traversals.
62. Height of a Binary Tree: Find the height of a binary tree.
63. Check Balanced Binary Tree: Determine if a binary tree is balanced.
64. Level Order Traversal: Perform level order traversal of a binary tree.
65. Binary Search Tree (BST): Implement a BST with insert, delete, and search
operations.
66. Lowest Common Ancestor in BST: Find the lowest common ancestor of two nodes in
a BST.
67. Binary Tree Maximum Path Sum: Find the maximum path sum in a binary tree.
68. Flatten Binary Tree to Linked List: Convert a binary tree into a flattened
linked list.
69. Diameter of Binary Tree: Find the diameter (longest path between any two nodes)
of a binary tree.
70. Validate Binary Search Tree: Check if a given tree is a valid BST.
71. Construct Binary Tree from Preorder and Inorder Traversal: Reconstruct a binary
tree from preorder and inorder traversals.
72. Symmetric Binary Tree: Check if a binary tree is symmetric around its center.
73. Merge Two Binary Trees: Merge two binary trees into a single binary tree.
74. Binary Tree Zigzag Level Order Traversal: Perform zigzag level order traversal
of a binary tree.
75. Vertical Order Traversal of Binary Tree: Perform vertical order traversal of a
binary tree.
76. Convert Sorted Array to Binary Search Tree: Convert a sorted array to a height-
balanced BST.
77. Path Sum: Find if there is a path in a binary tree that sums to a given value.
78. Kth Smallest Element in a BST: Find the kth smallest element in a binary search
tree.
79. Serialize and Deserialize Binary Tree: Implement serialization and
deserialization of a binary tree.
80. Binary Search Tree Iterator: Implement an iterator to traverse a BST in-order.

81-100: Graphs and Advanced Algorithms


81. Breadth-First Search (BFS): Implement BFS to traverse a graph.
82. Depth-First Search (DFS): Implement DFS to traverse a graph.
83. Dijkstra’s Algorithm: Find the shortest path in a weighted graph using
Dijkstra’s algorithm.
84. Bellman-Ford Algorithm: Find the shortest path in a graph with negative weights
using Bellman-Ford.
85. Floyd-Warshall Algorithm: Find the shortest paths between all pairs of nodes in
a graph.
86. Topological Sort: Implement topological sort for a Directed Acyclic Graph
(DAG).
87. Kruskal’s Algorithm: Implement Kruskal’s algorithm to find the minimum spanning
tree.
88. Prim’s Algorithm: Implement Prim’s algorithm to find the minimum spanning tree.
89. Detect Cycle in Directed Graph: Detect a cycle in a directed graph using DFS.
90. Find Strongly Connected Components: Find strongly connected components in a
directed graph using Tarjan’s algorithm.
91. Graph Representation (Adjacency List/Matrix): Represent a graph using adjacency
list or matrix.
92. Graph Coloring Problem: Solve the graph coloring problem using backtracking.
93. Island Counting: Count the number of connected components (islands) in a 2D
grid.
94. Word Ladder Problem: Transform one word into another by changing one letter at
a time using BFS.
95. Traveling Salesman Problem: Solve the traveling salesman problem using dynamic
programming.
96. Knight’s Shortest Path Problem: Solve the shortest path problem for a knight on
a chessboard.
97. Minimum Spanning Tree (Prim or Kruskal): Implement the algorithm to find the
minimum spanning tree.
98. Longest Path in a Directed Acyclic Graph: Find the longest path in a directed
acyclic graph (DAG).
99. Maximum Flow Problem: Solve the maximum flow problem using Ford-Fulkerson
algorithm.
100. Eulerian Path/Circuit: Determine if a graph contains an Eulerian path or
circuit.

"""

# Saving the content to a text file

You might also like