Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

DSAAlgo987/Data-Structures-Algorithms

Repository files navigation

Data Structures and Algorithms

This repository contains implementations of various data structures and algorithms in C and JavaScript.

Inspirational Quote

"First, solve the problem. Then, write the code."
– John Johnson

Table of Contents

  1. Data Structures
  2. Algorithms
  3. Notes
  4. Usage
  5. Contributing
  6. Contributors
  7. License

Data Structures

  • 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

Algorithms

  • 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

Notes

  • Recursion Types: Tail & Head
  • Algorithm Analysis and Complexity Theory
  • Data Structure Selection Guidelines
  • Recent update: Notes on recursion types (last year)

Usage

Running C Programs:

# Compile the C program
gcc filename.c -o outputname
# Run the executable
./outputname

Running JavaScript Programs:

# Run with Node.js
node filename.js

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Important:

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.

Contributors

License

MIT License

Copyright (c) 2024 Faisal786111

Contributors 3

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /