Skip to content

mohammadhoseinbaba/DSA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DSA -- Data Structure and Algorithm Learning in JavaScript

Welcome to the DSA repository! This repository is designed to help you understand and implement fundamental Data Structures and Algorithms (DSA) using JavaScript. Whether you're a beginner or looking to solidify your knowledge, this repository aims to guide you through the core concepts and practical applications of DSA in coding. Table of Contents

Table of Contents

About

The DSA repository is a collection of essential data structures and algorithms, implemented and explained in JavaScript. From array traversals to complex sorting algorithms, this repository is designed to support learners in mastering DSA concepts for coding interviews, competitive programming, or academic purposes. Features

Modular JavaScript Code: Each algorithm and data structure is implemented in JavaScript, with a focus on readability and modularity.
Conceptual Documentation: Clear explanations accompany each code file, helping you understand the purpose, time complexity, and space complexity.
Examples & Test Cases: Each function is provided with example input and output cases to aid understanding.
Beginner-Friendly: Well-structured code and documentation to help even absolute beginners get started with DSA.

Getting Started

Clone the repository:

git clone https://github.com/Mohammadhoseinbaba/DSA.git cd DSA

Explore the code: Open any of the files to see the algorithms and data structures implemented in JavaScript.

Run the code: Make sure you have Node.js installed on your system.

node path/to/yourFile.js

Learn & Experiment: Tweak the code, add your test cases, and try new variations!

Folder Structure

DSA/
├── README.md
├── Arrays/
│   ├── array_traversal.js
│   ├── binary_search.js
│   └── ...more
├── LinkedLists/
│   ├── singly_linked_list.js
│   ├── doubly_linked_list.js
│   └── ...more
├── Trees/
│   ├── binary_tree.js
│   ├── binary_search_tree.js
│   └── ...more
├── Sorting/
│   ├── bubble_sort.js
│   ├── quick_sort.js
│   └── ...more
└── ...other data structures and algorithms

Each folder is dedicated to a specific data structure or category of algorithms. Inside each file, you will find the code for the DSA concept, along with detailed comments explaining the logic, usage, and complexity.
Concepts Covered

    Array Traversals and Searching: Basic traversals, binary search, linear search
    Linked Lists: Singly and doubly linked lists, insertion, deletion, traversal
    Stacks and Queues: Implementation, usage, and practical applications
    Trees and Graphs: Binary trees, binary search trees, tree traversals, and basic graph algorithms
    Sorting Algorithms: Bubble sort, selection sort, quicksort, mergesort, and more
    Recursion: Basics of recursion, recursive algorithms, and common problems

    Note: Each file includes explanations for both the approach and the complexity analysis.

Contributing

Contributions are welcome! If you would like to contribute to this repository by adding new algorithms, improving code structure, or enhancing documentation, please follow these steps:

    Fork the repository
    Create a new branch for your feature or fix:

git checkout -b feature/new-algorithm

Commit your changes with descriptive messages:

git commit -m "Add new sorting algorithm"

Push to the branch:

    git push origin feature/new-algorithm

    Create a Pull Request - We will review it and merge it if it aligns with the repository goals.

License

This repository is licensed under the MIT License. See the LICENSE file for more information.

Happy Coding and Learning!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published