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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 classification

Strongly 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

About

==> 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

License:MIT License


Languages

Language:C 66.9%Language:Java 30.9%Language:JavaScript 2.2%