/Data-Structure-Zoo

An educational repo for students looking to learn about data structures in Python

Primary LanguagePythonMIT LicenseMIT

Data-Structures-Zoo

An educatinal repo for students looking to learn about data structures in Python. While this is based on a Java class, this resource will be using Python idioms. Currently 70% Done!

Imgur
Relevant xkcd

Table of Contents

  1. Object-oriented Programming
  2. Algorithm Analysis
  3. Sorting
  4. Generics
  5. Collections and Iterators
  6. Stack and its Applications
  7. Queue
  8. Tree
  9. Map
  10. Graphs

Introduction

First of all, congratulations! You probably just finished a tutorial or class on Python, but it left you wanting more. Your curiosity has led you to learn more about the fun things you can do in Python. This repo is meant to be a resource for those of you looking to dive into some interesting Computer Science topics. The repository is laid out in a logical order and I suggest completing it in the order prescribed. You'll learn about the basics of OOP, get into some of the math behind algorithm design and dive into the nitty gritty with Stacks, Linked-lists, and even Graphs!

This repo follows both DRY (Don't Repeat Yourself) and TDD (Test Driven Development) principles. Each folder has it's own test.py file. I encourage you to try it out via python test.py. Also as another exercise try modifying the objects that are being tested and break stuff!

Learning how to learn

If you've gotten this far on your curiosity alone, awesome! This repo is laid out in a natural order, if you go out of order it might not make sense. Essentially, a good plan of action is to read the README.md in each folder, look over the comments in the python files, run the test.py file, practice using the objects in another file (using import sorting.py for example), then try making your own!

If you find an error in my writing or python files feel free to create an issue, or if you're savy create a pull request with the fix. Thanks for reading!