This repository contains implementations of various data structures and algorithms in C and JavaScript.
"First, solve the problem. Then, write the code."
β John Johnson
- Singly Linked List
- Doubly Linked List
- Circular Linked List
- Operations: Insertion, Deletion, Traversal
- Recent update: Changes in delete position implementation
- Implementation using Arrays and Linked Lists
- Applications:
- Infix to Postfix & Prefix Conversion
- Parenthesis Matching
- Evaluation of Postfix & Prefix Expressions
- Recent update: B-tree implementation
- Priority Queue using Linked List & Array
- Queue using Array
- Queue using Linked List
- Queue using Two Stacks
- Recent update: README improvements
- Binary Tree Implementation and Traversals
- Binary Search Tree (BST)
- Insertion, Deletion, Search
- B-Tree Implementation
- AVL Tree (Height-Balanced BST)
- Recent update: B-tree implementation
- Min Heap Implementation
- Max Heap Implementation
- Heap Operations:
- Insert
- Delete
- Heapify
- Priority Queue using Heap
- Recent update: Corrected time complexity analysis for deletion in max heap
- Collision Resolution Techniques:
- Chaining (Closed Addressing)
- Linear Probing (Open Addressing)
- Quadratic Probing
- Double Hashing
- Hash Functions Implementation
- Recent update: Closed hashing and quadratic probing implementations
- Graph Representations:
- Adjacency Matrix
- Adjacency List
- Graph Algorithms:
- Depth First Search (DFS)
- Breadth First Search (BFS)
- Minimum Spanning Tree (Kruskal's Algorithm)
- Recent update: Kruskal's algorithm for Minimum Spanning Tree
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Heap Sort
- Radix Sort
- Recent update: Added all sorting algorithm implementations
- Linear Search
- Binary Search
- Fibonacci Search
- Interpolation Search
- Recent update: Fibonacci Search implementation
- Factorial Calculation
- Fibonacci Sequence
- Tower of Hanoi
- Tail and Head Recursion Examples
- Recent update: Updated tree.js implementation
- String Matching Algorithms
- Dynamic Programming Examples
- Greedy Algorithms
- Recent update: Rabin-Karp algorithm implementation
- Recursion Types: Tail & Head
- Algorithm Analysis and Complexity Theory
- Data Structure Selection Guidelines
- Recent update: Notes on recursion types (last year)
# Compile the C program
gcc filename.c -o outputname
# Run the executable
./outputname
# Run with Node.js
node filename.js
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Before merging any changes, make sure to create a pull request and have it reviewed by the repository maintainers. Only merge once all the reviews are completed and approved.
Faisal786111 (Faisal Khan) π» |
Haruu4304 (Harsha Surwase) π¨ π» |
AkshitShah96 (Akshit Shah) π¨ π» |
MIT License
Copyright (c) 2024 Faisal786111