## ToyData: Learning Data Structures with toy code
![](https://github.com/shenxiangzhuang/ToyData/raw/master/toydata.png)
There are some simple implementations(in Python3.7.6) of classic data structrues.
I am trying to do this with an easy-to-read style.
And, I add some extra functions beyond the ADTs, which are used mostly for printing and testing purposes.
### Books
[*Data Structures and Algorithms in Python, Michael T. Goodrich*](https://www.amazon.com/Structures-Algorithms-Python-Michael-Goodrich/dp/1118290275/ref=sr_1_4?qid=1580122939&refinements=p_27%3AMichael+T.+Goodrich&s=books&sr=1-4&text=Michael+T.+Goodrich)
is the **main reference** of the implementations.
Note that there is a book named [*Data Structures and Algorithms in C++, Michael T. Goodrich*](https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275/ref=sr_1_2?qid=1580122957&refinements=p_27%3AMichael+T.+Goodrich&s=books&sr=1-2&text=Michael+T.+Goodrich) which use C++ to implement these data structures.
And [*Data Structures Using C, Reema Thareja*](https://www.amazon.in/Data-Structures-Using-Reema-Thareja/dp/0198099304/ref=sr_1_1?qid=1580122713&refinements=p_27%3AReema+Thareja&s=books&sr=1-1) is also a great book that implement these data structures using C.
### Documentation
[ToyData](http://datahonor.com/ToyData/)
### API
- [x] Stack: ArrayStack, LinkedStack
- [x] Queue: ArrayQueue, ArrayDeque
- [x] Deque: LinkedDeque
- [x] Positional List: PositionalList
- [x] Prority Queues: UnsortedPriorityQueue, SortedPriorityQueue, HeapPriorityQueue
- [x] LinkedLists: Singlellist, Doublellist
- [x] Hash Tables: ChainHashMap, ProbeHashMap, SortedTableMap
- [x] Trees: LinkedBinaryTree
- [x] Search Trees: AVLTreeMap, SplayTreeMap, RedBlackTreeMap
- [x] Graph: Adjacency Map, DFS/BFS, Floyd-Warshall
### Courses
There some courses that use the book(*Data Structures and Algorithms in Python*) as textbook.(Tell me please, if you know other courses use it:-)
1. [数据结构与算法-Python (2019秋季),武汉大学](http://xpzhang.me/)
>Great lecture notes.
### References:
1. [Jenny's lectures CS/IT NET&JRF](https://www.youtube.com/channel/UCM-yUTYGmrNvKOCcAl21g3w/playlists)
>Jenny makes everything clear!