Add min-st-prim and max-st-prim.

This commit is contained in:
Sergiu Ivanov 2021-10-31 22:09:17 +01:00
parent 25671ff201
commit 2b7723dbad
1 changed files with 12 additions and 2 deletions

View File

@ -37,7 +37,7 @@
dfs dfs/generalized dfs dfs/generalized
dag? tsort cc cc/bfs scc 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) graphviz)
@ -189,6 +189,10 @@
(g:min-st-kruskal (gg g))) (g:min-st-kruskal (gg g)))
(define (max-st-kruskal g) (define (max-st-kruskal g)
(g:max-st-kruskal (gg 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 ;; 10 Graphviz
(define (graphviz g #:output [output #f] #:colors [colors #f]) (define (graphviz g #:output [output #f] #:colors [colors #f])
@ -278,6 +282,8 @@
;; 5 Spanning Trees ;; 5 Spanning Trees
[min-st-kruskal (-> Graph (Listof (List Any Any)))] [min-st-kruskal (-> Graph (Listof (List Any Any)))]
[max-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 ;; 10 Graphviz
[graphviz (->* (Graph) [graphviz (->* (Graph)
@ -396,7 +402,11 @@
(check-equal? (min-st-kruskal g0) (check-equal? (min-st-kruskal g0)
'((a e) (c d) (c b) (a b))) '((a e) (c d) (c b) (a b)))
(check-equal? (max-st-kruskal g0) (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" (test-case "10 Graphviz"
(define g (directed-graph '((a b) (b c)))) (define g (directed-graph '((a b) (b c))))