Skip to content

naiemofficial/Data-Structures-and-Algorithms

Repository files navigation

Data Structures and Algorithms

🏁 Array initializations & operations

SL Cateogry Program Sources
🡇 Array 🡇
1 Array Initialization and print
2 Array Initilization - set values by index
3 Create array from user (dynamic memory allocation)
🡇 Array Operations 🡇
3 Traverse
4 Insertion - Shift from the right
5 Insertion - Shift from the left
6 Deletion - Sorted array
7 Deletion - Unsorted array
8 Deletion - based on user input
9 Update
🡇 Merge 🡇
10 Merge two arrays into one array
11 Merge two sorted arrays into one array (Iterative)
12 Merge two sorted arrays into one array (Recursive)
13 Merge two unsorted arrays into a sorted array
🡇 Reverse 🡇
14 Reverse (Iterative)
15 Reverse (Recursive)
16 Reverse (using STL)
🡇 Sort 🡇
16 Selection sort
17 Bubble sort
18 Merge sort
19 Merge sort (minimal - example 1)
20 Merge sort (minimal - example 2)
21 Merge sort (using dynamic memory allocation)
22 Quick sort - example 1
23 Quick sort - example 2
24 Insertion sort
25 Heap sort
26 Count sort
27 Radix sort
28 Bucket sort
29 Tree sort
30 Shell sort
31 Sort non-zero values first
Move all zeros (0) to last
🡇 Search 🡇
32 Linear search
33 Binary search (Iterative)
34 Binary search (Recursive)
35 Jump search
36 Interpolation search
37 Exponential search
38 Searching - based on user input




🏁 Linked List

Singly Linked List Doubly Linked List
Singly Circular Linked List Doubly Circular Linked List
SL Cateogry Program C++ Sources
Singly Doubly Singly-C Doubly-C
1 Basic initialization
2
Insertion
Insertion
3 Insertion - based on user input
4 Insert node at the beginning
5 Insert node at the beginning - based on user input
6 Insert node to a specific position
7 Insert node to a specific position - based on user input
8
Deletion
Delete node from the specific position
9 Delete node from the specific position - based on user input
10 Delete node with a given value
11 Delete node with a given value - based on user input
12 Delete node at the beginning
13 Delete node at the end - based on user input
14 Delete node at the end
15 Delete node at the end - based on user input
16
Search
Linear Search
17 Linear Search - based on user input
18
Merge
Merge two lists
19 Merge two unsorted lists into a sorted list
20 Merge two sorted lists (Iterative)
21 Merge two sorted lists (Iterative - example 2).cpp
22 Merge two sorted lists (Recursive)
23 Merge two sorted lists (Recursive - example with the tail pointer)
24
Sort
Selection sort
25 Selection sort - swap entire node
26 Bubble sort
27 Bubble sort - swap entire node (example 1)
28 Bubble sort - swap entire node (example 2)
29
Reverese
Reverse (Iterative)
30 Reverse (Recursive)




🏁 Stack

SL Cateogry Program Sources
▼ Stack ▼
1 Stack implementation using STL
2 Stack implementation using array
3 Stack implementation using linked list
▼ Infix - Prefix - Postfix ▼
4 Infix to Prefix
5 Infix to Prefix (without stack)
6 Infix to Postfix
7 Prefix to Infix
8 Prefix to Postfix
9 Prefix Evaluation
10 Prefix Evaluation (greater value)
11 Postfix to Infix
12 Postfix to Prefix
13 Postfix Evaluation
14 Postfix Evaluation (greater value)




🏁 Queue

Queue / Linear Queue
Circular Queue
Double Ended Queue (Deque)
SL Cateogry Program Sources
▼ Queue ▼
1 Queue implementation using STL
2 Queue implementation using stack (STL)
3 Queue implementation using stack (array)
4 Linear Queue implementation using array
5 Linear Queue implementation using array with rearrange elements
6 Linear Queue implementation using linked list
7 Circular Queue implementation using array
8 Circular Queue implementation using linked list
▼ Deque (Double ended queue) ▼
9 Deque implementation using STL
10 Deque implementation using circular array
11 Deque implementation using doubly linked list




🏁 Tree

SL Cateogry Program Sources
▼ Binary Tree ▼
1 Tree implementation using linked list
2 Tree implementation and traversal using linked list - based on user input
3 Tree Traversal Inorder - Preorder - Postorder
4 Tree Traversal Level Order
5 Tree Traversal Height Order
6 Construct binary tree from given Inorder and Preorder data
7 Construct binary tree from given Inorder and Postorder data
8 Construct binary tree from given Preorder and Postorder data (full binary tree)
▼ Binary Expression Tree ▼
9 Binary Expression Tree to Infix Expression
10 Construct Infix to Binary Expression Tree
11 Construct Prefix to Binary Expression Tree
12 Construct Postfix to Binary Expression Tree
13 Construct Binary Expression Tree manually and evaluate the result
▼ Binary Search Tree - BST ▼
14 BST - Insertion
15 BST - Insertion from array
16 BST - Minimum & Maximum value
17 BST - Search
18 BST - Deletion
19 Validate BST
▼ AVL Tree ▼
20 AVL Tree - Implementation & Insertion
21 AVL Tree - Deletion
▼ Splay Tree ▼
22 Splay Tree - Implementation & Insertion
23 Splay Tree - Search
24 Splay Tree - Deletion (top-down approach)
25 Splay Tree - Deletion (bottom-up approach)
▼ B Tree & B+ Tree ▼ B B+
26 Implementation & Insertion & Traversal
27 Implementation & Insertion & Traversal - based on user input
28 Minimum & Maximum value
29 Search
30 Deletion




🏁 Graph

SL Cateogry Program Sources
▼ Adjacency List ▼
1 Undirected Graph implementation using Adjacency List
2 Directed Graph implementation using Adjacency List
3 Weighted Graph implementation using Adjacency List
4 Graph implementation using Adjacency List - based on user input
5 Graph implementation using Adjacency List & Linked List - based on user input
▼ Adjacency Matrix ▼
6 Undirected Graph implementation using Adjacency Matrix
7 Directed Graph implementation using Adjacency Matrix
8 Weighted Graph implementation using Adjacency Matrix
9 Graph implementation using Adjacency Matrix - based on user input
10 Unsorted Graph implementation using Adjacency Matrix
11 Unsorted Graph implementation using Adjacency Matrix (Number of elements unspecified)
▼ Incidence Matrix ▼
12 Graph implementation using Incidence Matrix
13 Graph implementation using Incidence Matrix - based on user input
14 Unsorted Graph implementation using Incidence Matrix
15 Unsorted Graph implementation using Incidence Matrix (Number of elements and edges are unspecified)
▼ DFS ▼
16 Depth First Search (DFS)
17 DFS for Disconnected Components and Unreachable Vertices in Graph
18 DFS Edge Classification
19 DFS Cycle Detection for Undirected Graph
20 DFS Cycle Detection for Directed Graph
21 Topological Sort Using DFS
▼ BFS ▼
22 Breadth First Search (BFS)
23 BFS for Disconnected Components and Unreachable Vertices in Graph
24 BFS Cycle Detection for Undirected Graph
25 Topological Sort Using BFS (Kahn's Algroithm)
26 BFS Cycle Detection for Directed Graph
▼ Path ▼
27 Find the Shortest Path in Undirected Graph
28 Find the Shortest Path in Undirected Graph Using Dijkstra's Algorithm
29 Find the Shortest Path in Directed Acyclic Graph
30 Find the Shortest Path in Directed Acyclic Graph - (Weight taken automatically)
31 All Pairs Shortest Path | Floyd Warshall Algorithm - (Input Edges)
32 All Pairs Shortest Path | Floyd Warshall Algorithm - (Input Matrix)
33 Detect Nagetive Weight Cycle Using Bellmen Ford Algorithm - Adjacency List
34 Detect Nagetive Weight Cycle Using Bellmen Ford Algorithm - Edge List
35 Minimum Spanning Tree - MST (Prim's Algorithm)
36 Bridge (Cut Edges)
37 Articulation Point (Cut Vertices)
38 Strongly Connected Components using Kosaraju's Algorithm
▼ Disjoint Set ▼
39 Disjoint Set - (Union by rank)
40 Disjoint Set - (Union by size)
41 Disjoint Set - Cycle Detection
42 Disjoint Set - Minimum Spanning Tree




🖼️ Image & Icon credit: ◉ Programiz ◉ Flaticon
✉️ E-mail: mail@naiem.info (for any inquiries)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages