We are done for this year. We look forward to seeing you at Hacktoberfest 2026. Until then, HAPPY CODING!
Welcome to The Algorithm & Data Structure Hub! This repository is a community-driven collection of common algorithms and data structures implemented in various programming languages. It's a resource for learning and a place for developers to make their first meaningful open-source contributions.
The mission of this repository is to become a high-quality, community-curated resource for learning fundamental algorithms and data structures. While we enthusiastically participate in events like Hacktoberfest, our primary goal is to create a lasting educational tool for developers of all skill levels. We are committed to maintaining a high standard of quality for all contributions.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
This project was built to be a welcoming and organized space for developers to make their first meaningful open-source contributions. We have a detailed guide on how to get started, including our folder structure, coding standards, and the entire pull request workflow.
HEAD π To get started, please read our Contributing Guidelines (CONTRIBUTING.md)!
Pull requests that do not follow these guidelines will be marked as invalid and closed.
Your contribution MUST follow this structure to be accepted.
/data_structures
/LinkedList
/python
/singly_linked_list.py
/javascript
/SinglyLinkedList.js
/algorithms
/sorting
/bubble_sort
/c_plus_plus
/bubble_sort.cpp
The repository is organized to make it easy to explore algorithms and data structure implementations across multiple programming languages.
algorithms
βββ array
βΒ Β βββ dutch_national_flag
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ sort_colors.py
βΒ Β βββ majority_element
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ majority_element.py
βΒ Β βββ max_subarray
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ kadane.py
βΒ Β βΒ Β Β Β βββ test_kadane.py
βΒ Β βββ merge_sorted
βΒ Β βΒ Β βββ javascript
βΒ Β βΒ Β Β Β βββ MergeSorted.js
βΒ Β βββ missing_number
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ missing_number.py
βΒ Β βββ move_zeroes
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ move_zeroes.py
βΒ Β βββ pascals_triangle
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ pascals_triangle.py
βΒ Β βββ product_except_self
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ product.py
βΒ Β βββ rotate
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ rotate_array.py
βΒ Β βββ sliding_window_max
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ sliding_window.py
βΒ Β βββ two_sum
βΒ Β Β Β βββ python
βΒ Β Β Β Β Β βββ test_two_sum.py
βΒ Β Β Β Β Β βββ two_sum.py
βββ backtracking
βΒ Β βββ n_queens
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ n_queens.py
βΒ Β βββ permutations
βΒ Β βΒ Β βββ javascript
βΒ Β βΒ Β Β Β βββ Permutations.js
βΒ Β βββ sudoku_solver
βΒ Β Β Β βββ python
βΒ Β Β Β Β Β βββ sudoku.py
βββ bit_manipulation
βΒ Β βββ check_ith_bit
βΒ Β βΒ Β βββ c
βΒ Β βΒ Β Β Β βββ check_bit.c
βΒ Β βββ single_number
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ single_number.py
βΒ Β βββ swap_numbers
βΒ Β Β Β βββ java
βΒ Β Β Β Β Β βββ SwapNumbers.java
βββ dfs
β βββ python
β βββ dfs.py
βββ dynamic_programming
βΒ Β βββ coin_change
βΒ Β βΒ Β βββ javascript
βΒ Β βΒ Β Β Β βββ CoinChange.js
βΒ Β βΒ Β Β Β βββ TestCoinChange.js
βΒ Β βββ longest_common_subsequence
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ lcs.py
βΒ Β βββ rod_cutting
βΒ Β βΒ Β βββ c_plus_plus
βΒ Β βΒ Β Β Β βββ rod_cutting.cpp
βΒ Β βββ subset_sum
βΒ Β Β Β βββ python
βΒ Β Β Β Β Β βββ subset_sum.py
βββ graph
βΒ Β βββ a_star
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ a_star.py
βΒ Β βββ bellman_ford
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ bellman_ford.py
βΒ Β βββ bfs
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ bfs.py
βΒ Β βββ dijkstra
βΒ Β Β Β βββ python
βΒ Β Β Β Β Β βββ dijkstra.py
βββ math
βΒ Β βββ factorial
βΒ Β βΒ Β βββ c_plus_plus
βΒ Β βΒ Β βΒ Β βββ factorial.cpp
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ factorial.py
βΒ Β βΒ Β Β Β βββ test_factorial.py
βΒ Β βββ fibonacci
βΒ Β βΒ Β βββ javascript
βΒ Β βΒ Β βΒ Β βββ FibonacciRecursive.js
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ fibonacci_iterative.py
βΒ Β βββ gcd
βΒ Β βΒ Β βββ c_plus_plus
βΒ Β βΒ Β Β Β βββ gcd.cpp
β βββ integer_to_roman
β β βββ java
β β βββ IntegerToRoman.java
βΒ Β βββ power
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ power.py
βΒ Β βββ README.md
βββ puzzles
βΒ Β βββ tower_of_hanoi
βΒ Β Β Β βββ python
βΒ Β Β Β Β Β βββ tower_of_hanoi.py
βββ README.md
βββ searching
βΒ Β βββ binary_search
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ binary_search_iterative.py
βΒ Β βββ jump_search
βΒ Β βΒ Β βββ java
βΒ Β βΒ Β Β Β βββ JumpSearch.java
βΒ Β βββ linear_search
βΒ Β Β Β βββ java
βΒ Β Β Β βΒ Β βββ LinearSearch.java
βΒ Β Β Β βββ python
βΒ Β Β Β Β Β βββ linear_search.py
βΒ Β Β Β Β Β βββ test_linear_search.py
βββ sorting
βΒ Β βββ bubble_sort
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β βΒ Β βββ bubble_sort.py
βΒ Β βΒ Β βΒ Β βββ test_bubble_sort.py
βΒ Β βΒ Β βββ rust
βΒ Β βΒ Β Β Β βββ bubble_sort.rs
βΒ Β βββ counting_sort
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ counting_sort.py
βΒ Β βββ heap_sort
βΒ Β βΒ Β βββ java
βΒ Β βΒ Β Β Β βββ HeapSort.java
βΒ Β βββ insertion_sort
βΒ Β βΒ Β βββ java
βΒ Β βΒ Β βΒ Β βββ InsertionSort.java
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ insertion_sort.py
βΒ Β βΒ Β Β Β βββ test_insertion_sort.py
βΒ Β βββ quick_sort
βΒ Β βΒ Β βββ javascript
βΒ Β βΒ Β Β Β βββ QuickSort.js
βΒ Β βββ radix_sort
βΒ Β βΒ Β βββ c_plus_plus
βΒ Β βΒ Β Β Β βββ radix_sort.cpp
βΒ Β βββ selection_sort
βΒ Β Β Β βββ python
βΒ Β Β Β Β Β βββ selection_sort.py
βββ string
βΒ Β βββ anagram
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ anagram.py
βΒ Β βββ first_non_repeating
βΒ Β βΒ Β βββ java
βΒ Β βΒ Β Β Β βββ FirstNonRepeating.java
βΒ Β βββ group_anagrams
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ group_anagrams.py
βΒ Β βββ longest_palindrome
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ longest_palindrome.py
βΒ Β βββ palindrome
βΒ Β βΒ Β βββ python
βΒ Β βΒ Β Β Β βββ palindrome.py
βΒ Β βββ README.md
βΒ Β βββ reverse
βΒ Β βΒ Β βββ javascript
βΒ Β βΒ Β Β Β βββ ReverseString.js
βΒ Β βββ valid_parentheses
βΒ Β Β Β βββ python
βΒ Β Β Β Β Β βββ valid_parentheses.py
βββ tree
Β Β βββ invert
Β Β βΒ Β βββ python
Β Β βΒ Β Β Β βββ invert_tree.py
Β Β βΒ Β Β Β βββ test_invert_tree.py
Β Β βββ max_depth
Β Β βΒ Β βββ python
Β Β βΒ Β Β Β βββ max_depth.py
Β Β βββ traversal
Β Β Β Β βββ java
Β Β Β Β βΒ Β βββ PostOrder.java
Β Β Β Β βββ python
Β Β Β Β Β Β βββ level_order.py
data_structures
βββ Deque
βΒ Β βββ python
βΒ Β Β Β βββ deque.py
βββ FenwickTree
βΒ Β βββ c_plus_plus
βΒ Β Β Β βββ fenwick_tree.cpp
βββ Graph
βΒ Β βββ python
βΒ Β Β Β βββ graph_adjacency_list.py
βββ HashTable
βΒ Β βββ javascript
βΒ Β Β Β βββ HashTable.js
βββ Heap
βΒ Β βββ python
βΒ Β Β Β βββ min_heap.py
βββ LinkedList
βΒ Β βββ c_plus_plus
βΒ Β βΒ Β βββ doubly_linked_list.cpp
βΒ Β βββ java
βΒ Β βΒ Β βββ CircularLinkedList.java
βΒ Β βββ python
βΒ Β Β Β βββ interactive_demo.py
βΒ Β Β Β βββ singly_linked_list.py
βββ Queue
βΒ Β βββ python
βΒ Β Β Β βββ queue_using_stack.py
βββ README.md
βββ Stack
βΒ Β βββ c
βΒ Β βΒ Β βββ stack.c
βΒ Β βββ javascript
βΒ Β βΒ Β βββ Stack.js
βΒ Β βββ python
βΒ Β Β Β βββ stack.py
βββ Tree
Β Β βββ python
Β Β Β Β βββ avl_tree.py
This project is licensed under the MIT License.