/KamiLimu_Cohort8_ADTs

Welcome to the KamiLimu ADT Practice Repository! This project is designed for mentees to practice their Git skills, contribute to open source, and implement fundamental Abstract Data Types (ADTs) in their language of choice. Whether you're a beginner or an experienced developer, this is a great place to hone your skills and collaborate with others.

MIT LicenseMIT

Problem Solving using Data Structures

Given the sessions with Dr. Chao, this repo was created with the aim of complementing them. It is meant to give KamiLimu mentees (cohort 8 and future cohorts) a place to practice building data structures from scratch. It also serves as practice for contribution using Git and GitHub. You can also use this to read up on various ADTs before a technical interview or even an exam (if you're doing data structures and algorithms).

This current repo is specifically for cohort 8. All implementations here are a showcase of the intellecutal capabilities of our fellow mentees. Have fun and learn!

What even are ADTS?

Data structures are abstract ways of storing, arranging and manipulating data. There are linear and non-linear data structures.

Linear ADTs

These include:

  • Array
  • Linked list
  • Stack
  • Queue

Non-linear ADTs

These include:

  • Tree
  • Heap
  • Graph
  • Hash Table

How to use this repo?

"The natural order is disorder" ~Zaheer.

Unfortunately, Zaheer was not correct. We at KamiLimu love order, and this repo embodies that. For all sessions we have with Dr. Chao, we learn new ADTs. For each ADT learned, a new branch is created. In each branch, various folders exist for each language an ADT is implemented in.

As a mentee, if you wish to implement a certain ADT:

  • On the repo, go to the specific branch of the ADT you would wish to work on and clone it onto your local

    git clone --single-branch --branch <branchname> <remote-repo>
    

    Example: If a mentee would like to implement stacks, they would do:

    git clone --single-branch --branch Stacks https://github.com/KamiLimu-mentees-ADTs/KamiLimu_Cohort8_ADTs.git
    
  • While on your local, you have 2 paths:

    • If the folder for the language you wish you to implement in does not exist, simply create the new folder with the name of the language. Eg. python_implementation

    • If the folder does exist, navigate to that folder

  • In the folder of your desired language, you have 2 paths:

    Given that there are more mutiple ways to implement an ADT, there has to be a clear distinction. Files should be named with how they are implemented, eg. stacks_array or stacks_linked_lists.

    • If, in the folder, a certain implementation method does not exist, simply create it and name it accordingly

    • If it does, make whatever changes you believe are necessary and open a pull request

Thank you for contributing

You don't have to contribute to this repo. You can simply learn from it. For those who do contribute, we appreciate your work. For those learning from it, we appreciate your need for knowledge.