Allows users to create graphs and run a variety of algorithms on their graphs. Graphs are classes in node.py and represent edges with defaultdictionary. Algorithms were implemented myself and are based on the design of Graph. Users may create their own graph and view it. Graphs may be directed or undirected, weighted or unweighted.
Algorithms:
- Floyd's Cycle Determining/Locating Algorithm
- Breadth-First Traversal
- Depth-First Traversal
- Algorithm to determine whether graph is Binary Tree or Binary Search Tree or not (currently buggy)
- Prim's Minimum Spanning Tree Algorithm
Dependencies: matplotlib, networkx. Python3 is required. Run python3 main.py
.
- Bug fixes (BT/BST)
- Add more algorithms (path finding, flow).
- Create into web app for easier accessibility and cleaner UI.
- Add visualization of algorithms so that user can see what is happening during each step of the algorithm.