Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/saddamarbaa/data-structures-and-algorithms
==> I made this repository to post my code and document my progress while Learning data structures and algorithms concepts in this repository, I covered the complete data structures and algorithms
https://github.com/saddamarbaa/data-structures-and-algorithms
array binary-tree c graph hash-tables java javascript leetcode python typescript
Last synced: 3 months ago
JSON representation
==> I made this repository to post my code and document my progress while Learning data structures and algorithms concepts in this repository, I covered the complete data structures and algorithms
- Host: GitHub
- URL: https://github.com/saddamarbaa/data-structures-and-algorithms
- Owner: saddamarbaa
- License: mit
- Created: 2020-06-29T15:32:40.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-25T05:13:12.000Z (4 months ago)
- Last Synced: 2024-10-03T16:21:29.701Z (4 months ago)
- Topics: array, binary-tree, c, graph, hash-tables, java, javascript, leetcode, python, typescript
- Language: C
- Homepage:
- Size: 1.02 MB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Data Structures & Algorithms
I made this repository to post my code and document my progress while Learning Data Structures and Algorithms Concepts
## Recommended Books for the Course and Reference Source
1. Introduction to Algorithms, 3rd Edition by thomas h. cormen
2. Introduction to Algorithms, 2rd Edition by thomas h. cormen
3. Data Structures Through C In Depth By. Sk Srivastava
# Data Structures AND Algorithms Include
# DSA Introduction
Asymptotic Analysis
Asymptotic Notations
Theta Notation (Θ-notation)
Big-O Notation (O-notation)
Omega Notation (Ω-notation)
Master Theorem
Divide and Conquer Algorithm
# Arrays Data Structure
A one-dimensional array (or single dimension array)
Two-dimensional Arrays
Multi-dimensional Arrays
# Linked List Data Structure
Singly Linked List
Doubly Linked List
Circular linked list
Doubly Circular Linked List
# Stack Data Structure
Stack Data Structure Array Implementation
Stack Data Structure linked list Implementation
# Infix Prefix & Postfix Expressions in Data Structures
Infix to Postfix Expression using STACK Data Structure
Infix to Prefix Expression using Stack Data Structure
Pretfix to Infix Expression using STACK Data Structure
Postfix to Prefix Expression using STACK Data Structure
Prefix to Postfix Expression using STACK Data Structure
# Queue Data Structure
Queue Data Structure Array Implementation (FIFO)
Queue Data Structure linked list Implementation(FIFO)
Queue Data Structure Stack Implementation (FIFO)
Circular Queue Data Structure Array Implementation
Circular Queue Data Structure linkedlist Implementation
Deque (Double Ended Queue)
Double Ended Queue Circular Array Implementation
# Priority Queue
A priority Queue Implementation Using A Min-Heap
A priority Queue Implementation Using A Max-Heap
# Disjoint Set Union
Path compression
Union by Rank# Sorting Algorithms
Bubble Sort Algorithm
Selection Sort Algorithm
Insertion Sort Algorithm
Merge Sort Algorithm
Quicksort Algorithm
Counting Sort Algorithm
Radix Sort Algorithm
Bucket Sort Algorithm
Shell Sort Algorithm
Heap Sort Algorithm
A Min-Heap Sort Algorithm
A Max-Heap Sort Algorithm
Graph Topological Sort
# TODO ON (Sorting Algorithms)
Bitonic Sort
Cocktail Sort
Cycle Sort
Gnome Sort
LSDRadix Sort Algorithm
Postman Sort
Tim-sort
pigeonhole-sort
COMB SORT# Searching Algorithms
Linear Search
Binary Search
# Hashing
Direct Address Table
Hash Table and Hash Function Array Implementation
Hash Tables Separate Chaining With Doubly Linked Lists
Hash Table Separate Chaining With Singly Linked Lists
Hash Table with Chaining (Dictionary Speller Checker )
Hash Table Implementation with Linear Probing (Hashing)
Hash Table Implementation with Quadratic Probing
Hash Table Implementation with Double Hashing
# TODO ON (Hashing)
Cryptographic Hashing# Tree Based Data Structure(1)
# Tree Data Structure
Tree Traversal - inorder, preorder and postorder
Binary Tree
Full Binary Tree
Perfect Binary Tree
Complete Binary Tree
Balanced Binary Tree
Binary Search Tree(BST)
AVL Tree
# Tree Based Data Structure(2)
# Red-Black Tree
Insertion in a Red-Black Tree
Deletion From a Red-Black Tree
# Splay Tree
Insertion in Splay Tree
Deletion From Splay Tree (Top Down Splaying)
Deletion From Splay Tree (Bottom-up Splaying)
# B-tree
Insertion into a B-tree(CODE TODO)
Deletion from a B-tree (CODE TODO)
# B+ Tree
Insertion on a B+ Tree (CODE TODO)
Insertion on a B+ Tree (CODE TODO)
# Graph Based Data Structure
Graph Data Stucture
Graph Adjacency list Representation
Graph Adjacency Matrix Representation
Depth First Search Implementation (DFS Algorithm)
Breadth first Search Implementation (BFS Algorithm)
Spanning Tree and Minimum Spanning Tree
Topological Sorting
Types of edges in DFS | Edge classificationStrongly Connected Components (CODE TODO)
# TODO ON (Graph Based Data Structure)
Bellman Ford's Algorithm
Detect Cycle in Directed Graph
Detect Cycle in Undirected Graph
# Greedy Algorithms
Kruskal's Algorithm
Prim's Algorithm
# TODO ON (Greedy Algorithms)
Ford-Fulkerson Algorithm
Dijkstra's Algorithm
Huffman Coding
# Dynamic Programming
Coin Change Problem Number
Coin Change Problem: Minimum number of coins Dynamic Programming# TODO ON (Dynamic Programming)
Floyd-Warshall Algorithm
Longest Common Subsequence
Traveling Salesman Problem using Dynamic Programming
0/1 knapsack problem-Dynamic Programming
Fractional Knapsack Problem using Greedy Method
Subset Sum Problem using Dynamic Programming
# Algorithms TODO
Backtracking Algorithm
Rabin-Karp Algorithm
# Algorithms Specialization Offered By Princeton University on coursera
Algorithms, Part I
https://www.coursera.org/learn/algorithms-part1
Algorithms, Part II
https://www.coursera.org/learn/algorithms-part2
# Algorithms Specialization Offered By Stanford University on coursera
https://www.coursera.org/specializations/algorithms
Divide and Conquer, Sorting and Searching, and Randomized Algorithms
https://www.coursera.org/learn/algorithms-divide-conquer
Graph Search, Shortest Paths, and Data Structures
https://www.coursera.org/learn/algorithms-graphs-data-structures
Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
https://www.coursera.org/learn/algorithms-greedy
Shortest Paths Revisited, NP-Complete Problems and What To Do About Them
https://www.coursera.org/learn/algorithms-npcomplete