Skip to content

DebashishRana/DSA-Simulations

Repository files navigation

1_J38nYZU7gzu-4lQmtjlSUw


Data Structures & Algorithms in Python

A comprehensive learning project featuring implementations of fundamental data structures and algorithms with practical applications and simulations.

View Project Details · Browse Structure · See Features

Table of Contents
  1. About The Project
  2. Project Structure
  3. Features
  4. Getting Started
  5. Usage Examples

About The Project

This is a comprehensive Data Structures and Algorithms (DSA) learning project implemented in Python. It demonstrates fundamental concepts used in computer science and software engineering, including core abstract data types, algorithms, and practical applications. All implementations are done locally for educational purposes, and the resources are available for learning and reference.

Key Focus Areas:

  • Foundational Abstract Data Types (ADTs)
  • Practical algorithm implementations
  • Real-world applications of data structures
  • Problem-solving techniques

(back to top)

Project Structure

DSA/
├── Stack/                    # Stack ADT implementation
│   ├── stack.py             # Core stack class
│   ├── Stack Questions.py    # Stack problem solutions
│   ├── decimal_to_binary.py  # Number system conversion using stack
│   ├── decimal_to_hex.py     # Decimal to hexadecimal conversion
│   ├── decimal_to_octal.py   # Decimal to octal conversion
│   ├── undoredo.py           # Undo/redo functionality implementation
│   ├── vector_converter.py   # Vector conversion utilities
│   └── auto_data_converter.py # Automatic data type converter
│
├── Queue/                    # Queue ADT implementation
│   └── queue.py             # Core queue class with capacity management
│
├── Dequeu/                   # Double-ended Queue implementation
│   ├── deque.py             # Core deque class
│   ├── deque_test.py        # Unit tests for deque
│   ├── palindrome_checker.py # Palindrome validation using deque
│   ├── browser_logic.py      # Browser history simulation
│   ├── browser.py            # Browser navigation implementation
│   └── dequeu.py            # Alternative deque implementation
│
├── Linkedlst/               # Linked List implementation
│   ├── Linkedlist.py        # Core linked list class
│   ├── node_class.py        # Node structure definition
│   └── Node_Solid.py        # Alternative solid node implementation
│
├── Node Class/              # Node class utilities
│   └── node_class.py        # Node class base implementation
│
├── searching/               # Search algorithms
│   └── binary_search.py     # Binary search implementation
│
├── Simulations/             # Data structure simulations
│   ├── Data_Structure_Learning_project.py  # Main learning project
│   ├── playground.py        # Experimentation space
│   └── Sequence 1/          # Sequential learning modules
│
├── practice/                # Practice problems and questions
│   ├── Q5.py
│   ├── Q8.py
│   ├── question1.py
│   ├── Stack_class.py
│   └── question/
│
├── CH4/                     # Chapter 4 implementations
│   └── main.py
│
└── README.md               # Project documentation

(back to top)

Features

Core Data Structures Implemented

  • Node Class: Fundamental building block for linked structures

  • Stack (LIFO):

    • Array-based implementation
    • Node-based implementation
    • Applications: undo/redo, expression evaluation, number conversions
  • Queue (FIFO):

    • Capacity management
    • Overflow handling
    • Standard queue operations
  • Deque (Double-Ended Queue):

    • Insert/remove from both ends
    • Palindrome validation
    • Browser navigation history simulation
  • Linked Lists:

    • Singly linked lists
    • Node-based traversal
    • Dynamic memory allocation

Algorithm Implementations

  • Binary Search: Efficient searching in sorted arrays

  • Number System Conversions:

    • Decimal to Binary
    • Decimal to Hexadecimal
    • Decimal to Octal
  • Pattern Recognition: Palindrome checking using deques

Practical Applications

  • Browser navigation with forward/back functionality
  • Undo/redo system implementation
  • Data type conversion utilities
  • Vector operations

Testing & Validation

  • Unit tests for deque operations
  • Palindrome checker validation
  • Browser simulation testing

(back to top)

Getting Started

Prerequisites

  • Python 3.6 or higher
  • Basic understanding of data structures and algorithms

Installation

  1. Clone the repository:
    git clone https://github.com/yourusername/DSA.git
    cd DSA

Contributing

Contributions are welcome! Feel free to:

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

(back to top)

Acknowledgments

This project demonstrates fundamental computer science concepts and serves as an educational resource for understanding data structures and algorithms in Python.

(back to top)

```sh npm install npm@latest -g ```

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Top contributors:

contrib.rocks image

License

Distributed under the project_license. See LICENSE.txt for more information.

(back to top)

Contact

Your Name - @twitter_handle - email@email_client.com

Project Link: https://github.com/github_username/repo_name

(back to top)

Acknowledgments

(back to top)

About

This repository contains all the implementation of ADT and problems approaches solved referencing from book Data Structure and Algorithms by Brad Miller by me personally

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Contributors

Languages