Requirements
- List all the data structures ex: Queue, Stack, Tree
- Support tagging at each data structure instance. ex: LinkedList may be tagged as list, queue.
- Represent the hierarchy of data structures visually using the above tags. e.g. abstract data types —> concrete data types —> to use-case specific/application data types. Concrete example Tree —> Binary Tree –> Binary Search Tree.
- List problems with their definitions along with tagging by their types.
- List algorithms with their psuedo code along with tagging by their types.
- Link data structures to problems and algorithms.
- Allow instantiation of a data structure with specified parameters.
- Represent the data structure visually. Generate a DOT file on the server side and use GraphViz/Tulip to generate an image dynamically and send the image over to the browser.
- Allow LCRUD on all the three – problems, algorithms, datastructures.
- Allow REPL to solve the problems within UI.
Implementations
- Starting a Ruby on Rails project on this soon on github.
References
- Graphviz based UI visualization – http://www.youtube.com/watch?v=IxSSbUrgTBY
- Graph gem – https://github.com/seattlerb/graph
- Project with my data structure implementations and some problems with solutions – https://github.com/sandeepkunkunuru/CodingExercises