From 2b7723dbadd6077c7ad770c99a89d47d9a78ee31 Mon Sep 17 00:00:00 2001 From: Sergiu Ivanov Date: Sun, 31 Oct 2021 22:09:17 +0100 Subject: [PATCH] Add min-st-prim and max-st-prim. --- graph.rkt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/graph.rkt b/graph.rkt index 95cde36..231753a 100644 --- a/graph.rkt +++ b/graph.rkt @@ -37,7 +37,7 @@ dfs dfs/generalized dag? tsort cc cc/bfs scc - min-st-kruskal max-st-kruskal + min-st-kruskal max-st-kruskal min-st-prim max-st-prim graphviz) @@ -189,6 +189,10 @@ (g:min-st-kruskal (gg g))) (define (max-st-kruskal g) (g:max-st-kruskal (gg g))) + (define (min-st-prim g source) + (g:min-st-prim (gg g) source)) + (define (max-st-prim g source) + (g:max-st-prim (gg g) source)) ;; 10 Graphviz (define (graphviz g #:output [output #f] #:colors [colors #f]) @@ -278,6 +282,8 @@ ;; 5 Spanning Trees [min-st-kruskal (-> Graph (Listof (List Any Any)))] [max-st-kruskal (-> Graph (Listof (List Any Any)))] + [min-st-prim (-> Graph Any (Listof (List Any Any)))] + [max-st-prim (-> Graph Any (Listof (List Any Any)))] ;; 10 Graphviz [graphviz (->* (Graph) @@ -396,7 +402,11 @@ (check-equal? (min-st-kruskal g0) '((a e) (c d) (c b) (a b))) (check-equal? (max-st-kruskal g0) - '((c b) (c a) (c d) (a e)))) + '((c b) (c a) (c d) (a e))) + (check-equal? (min-st-prim g0 'e) + '((b c) (e a) (c d) (a b))) + (check-equal? (max-st-prim g0 'e) + '((a c) (e a) (c d) (c b)))) (test-case "10 Graphviz" (define g (directed-graph '((a b) (b c))))