Commit Graph

40 Commits

Author SHA1 Message Date
warrence d0cbebcae0 Fix formatting 2026-04-22 16:32:17 +02:00
warrence ee26b7a3e0 Move AppendGraph to its own module 2026-04-22 16:31:17 +02:00
warrence a939f9b889 Add Dijkstra variant without returning predecessors 2026-04-22 15:50:45 +02:00
warrence a250bde626 Add DijkstraResult return type instead of unnamed tuple 2026-04-22 14:49:07 +02:00
warrence 41f2332735 Add test for add_edge() return value 2026-04-22 14:36:41 +02:00
warrence ab830ed221 Rename Graph to AppendGraph for future other graph models 2026-04-22 14:31:11 +02:00
warrence 9088dd4683 Add edge return type to GraphTopology::add_edge()
There is currently no use for the return type, but it will come.
2026-04-22 14:28:21 +02:00
warrence da9ba7b0ad Add GraphTopology trait and use it to interface graph model with algorithm 2026-04-22 14:26:35 +02:00
warrence 489ed6d506 Combine next_incidences and incidence_vertices of Graph into one, and rename incidence_headers to vertices 2026-03-19 21:21:52 +01:00
warrence c5a0f2a3f6 Add tests for loops and multiple edges 2025-11-03 14:03:21 +01:00
warrence 3565b6b548 Remove pub from structs and fields that should have been private
Graph fields can now be private because of the new iterators Graph::vertices()
and Graph::neighbors(). Without them there was no way to access vertices and
incidences without the public Graph fields.
2025-10-25 01:23:05 +02:00
warrence 5ad480b379 Add tests for Dijkstra's algorithm on trivial graphs 2025-10-25 01:15:16 +02:00
warrence 64d0302d64 Update Dijkstra's algorithm to use Graph::neighbors() iterator 2025-10-25 01:03:02 +02:00
warrence 149db22fe8 Add todo 2025-10-25 00:57:29 +02:00
warrence 761920b2c0 Update Graph::are_adjacent() to use neighbors() iterator 2025-10-25 00:56:24 +02:00
warrence 50f3a150bb Add tests for some trivial graphs 2025-10-25 00:51:48 +02:00
warrence 6ff02f8c67 Update vertex iterator tests 2025-10-25 00:41:08 +02:00
warrence a26b0eba8c Add tests for Graph::neighbors() 2025-10-24 23:29:25 +02:00
warrence 74ca390ac2 Add tests for Graph::vertices() 2025-10-24 23:20:48 +02:00
warrence 72d3c06f1e Rename Graph::iter() to Graph::vertices() 2025-10-21 16:38:02 +02:00
warrence dd76355a70 Add iterator over neighbors of a vertex Graph::neighbors() 2025-10-21 16:36:53 +02:00
warrence 0826e140b8 Add iterator over vertices Graph::iter() 2025-10-21 15:57:48 +02:00
warrence bff8ca6857 Move main() code into tests and remove binary crate 2025-10-15 17:09:11 +02:00
warrence a4ed7ea44e Update todos 2025-10-11 21:44:20 +02:00
warrence 66e1498c76 Add Graph::new() 2025-10-08 17:04:25 +02:00
warrence 679b597f92 Add todo 2025-10-08 14:38:28 +02:00
warrence 720f497b64 Add "algorithms" and "models" modules for existing code and related todos 2025-10-08 14:32:52 +02:00
warrence 46675a1246 Add success message at the end of main() 2025-10-08 14:30:14 +02:00
warrence 43974d6754 Add todos 2025-10-08 13:42:50 +02:00
warrence e879316a4c Update todo 2025-10-06 19:25:20 +02:00
warrence 5bf723928b Update test assertions in main() 2025-10-06 18:43:37 +02:00
warrence 2a35c47ad4 Add basic Dijkstra algorithm with test in main() 2025-10-06 18:34:17 +02:00
warrence 04c9150172 Reformat code with rustfmt 2025-10-06 10:59:49 +02:00
warrence e518d72a9e Rename Graph.vertex_incidence_headers to "incidence_headers" 2025-10-06 10:53:54 +02:00
warrence 5a1080783c Add Graph example test 2025-10-06 10:23:21 +02:00
warrence 58f330ef46 Fix are_adjacent() method
Next incidence was not updated correctly, which could lead to bad results and infinite loops.
2025-10-06 10:23:19 +02:00
warrence b85edb1287 Add RustRover files 2025-10-06 10:23:15 +02:00
warrence 2e72de2281 Add experimental Graph implementation 2025-10-06 10:23:11 +02:00
warrence e07389aed8 Add cargo init files 2025-10-06 10:22:34 +02:00
warrence 520969c157 Initial commit 2025-10-03 17:39:03 +02:00