Note that these are possibilities, not plans nor promises. - graph periphery: the subgraph of graph center vertices - finding the shortest cycle: easy for directed (*), but how about undirected? (*) http://www.cs.auckland.ac.nz/~ute/220ft/graphalg/node14.html do a BFS, when sees an already seen vertex, a cycle of length of at most twice the current depth of the BFS has been found; no cycles => V + 1 (Inf) - bipartite aka 2-colourable: again, BFS: http://www.cs.auckland.ac.nz/~ute/220ft/graphalg/node15.html - Eulerian circuit: Fleury's algorithm: http://planetmath.org/encyclopedia/FleurysAlgorithm.html - could_be_isomorphic() - go second degree? 1. separate external and internal attributes? 2. biconn: add next_root 3. DAG SSSP 4. flow: Ford-Fulkerson/Edmonds-Karp/preflow-push? Floyd-Warshall variant? -- Classics -- Undirected graphs - connectivity - given two vertices are they on a cycle - find_all_paths($u, $v)? - find_all_cycles()? NP-complete; equivalent to finding all Hamiltonians - Euler tour - bipartite matching: Hopcroft - Kraft - 2-colorability (see above) - planarity Digraphs - disallow_selfloops => 1? - odd-length cycle - shortest paths (bfs) - squaring a graph: for (u,v)(v,w) add (u,w) unless already there - graph union, graph difference? Various specialized graph constructors? - n-dim grid (with wraps and connectors -> wheels (webs), cones), circle, star, platonic solids, trees, etc.