Graph Algorithms Tutorial¶
cds.graph implements traversal, shortest paths, MST, topo sort, and cycle detection on a small Graph class.
1. Build a Graph¶
from cds.graph import Graph
g = Graph(directed=False)
for u, v, w in [("A", "B", 4), ("A", "C", 2), ("B", "C", 1), ("B", "D", 5), ("C", "D", 8)]:
g.add_edge(u, v, weight=w)
2. Traversal¶
3. Shortest Paths & MST¶
from cds.graph import dijkstra, kruskal_mst
print(dijkstra(g, "A")) # {node: distance}
print(kruskal_mst(g)) # list of (u, v, weight)
4. Topological Sort & Cycles¶
from cds.graph import Graph, topological_sort, has_cycle
dag = Graph(directed=True)
dag.add_edge("a", "b")
dag.add_edge("b", "c")
print(topological_sort(dag)) # valid ordering
print(has_cycle(dag)) # False
Run the full demo with python examples/graph_demo.py.