Skip to content

MrHarcombe/NodeDemonstrator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node Demonstrator

Building a drag and drop desktop (Tkinter) application to help visualise various graph algorithms.

Current progress

  • drag and drop interface to build a graph
    • can be weighted or unweighted
    • in "node" mode...
      • click to create a node
      • drag to move a node and associated edges
      • double-click to rename nodes, if the default names aren't sufficient
      • double-right click to delete a node
    • in "edge" mode...
      • click and drag between nodes to create an edge
      • drag to rotate a loopback edge out of the way
      • double-click to change the weight of an edge
      • double-right click to delete an edge
  • choice of stepped or timed trace of supported algorithms
  • available algorithms
    • breadth-first / depth-first from a given start point (with or without end point, ie traversal and/or search)
    • Dijkstra and A* shortest path

Usage

  • Currently, this project uses the tweaked version of CustomTkinter that needs to be obtained directly from here until the submitted PR is approved into the main project.
  • To run, install package then launch with "python -m nodemon"

Future algorithm support

  • Kruskal's and Prim's minimum spanning trees
  • Other algorithms from here, or here or here?
  • Any other suggestions?