Add matrix->matrix-graph and matrix->graph->graph.
This commit is contained in:
parent
ecfefeb03e
commit
e5b75ad8bb
1 changed files with 12 additions and 1 deletions
13
graph.rkt
13
graph.rkt
|
@ -32,6 +32,7 @@
|
|||
weighted-graph? weighted-graph/undirected weighted-graph/directed
|
||||
undirected-graph directed-graph
|
||||
(rename-out [g:matrix-graph? matrix-graph?])
|
||||
matrix->matrix-graph matrix-graph->graph
|
||||
|
||||
bfs bfs/generalized fewest-vertices-path
|
||||
dfs dfs/generalized
|
||||
|
@ -120,6 +121,9 @@
|
|||
(graph (g:directed-graph es ws)))
|
||||
|
||||
;; 2.3 Matrix Graphs
|
||||
(define (matrix->matrix-graph mtx)
|
||||
(g:matrix->matrix-graph mtx))
|
||||
(define matrix-graph->graph graph)
|
||||
|
||||
;; 4 Basic Graph Functions
|
||||
;; 4.1 Breadth-first Search
|
||||
|
@ -240,6 +244,7 @@
|
|||
(define (graphviz g #:output [output #f] #:colors [colors #f])
|
||||
(g:graphviz (gg g) #:output output #:colors colors)))
|
||||
|
||||
(require (only-in math/matrix Matrix))
|
||||
|
||||
(require/typed/provide 'graph-wrapper
|
||||
[#:opaque Graph graph?]
|
||||
|
@ -282,6 +287,8 @@
|
|||
[directed-graph (->* ((Listof (List Any Any))) ((Listof Any)) Graph)]
|
||||
|
||||
;; 2.3 Matrix Graphs
|
||||
[matrix->matrix-graph (-> (Matrix Any) Matrix-Graph)]
|
||||
[matrix-graph->graph (-> Matrix-Graph Graph)]
|
||||
|
||||
;; 4 Basic Graph Functions
|
||||
;; 4.1 Breadth-first Search
|
||||
|
@ -370,6 +377,7 @@
|
|||
;; functions can be invoked without errors. The tests do not check
|
||||
;; whether the results make sense.
|
||||
(require typed/rackunit)
|
||||
(require (only-in math/matrix matrix))
|
||||
|
||||
;; TODO: Submit an update to hash->list in Racket and then remove
|
||||
;; this function.
|
||||
|
@ -431,7 +439,10 @@
|
|||
"digraph G {\n\tnode0 [label=\"c\"];\n\tnode1 [label=\"a\"];\n\tnode2 [label=\"b\"];\n\tsubgraph U {\n\t\tedge [dir=none];\n\t}\n\tsubgraph D {\n\t\tnode1 -> node2 [label=\"1\"];\n\t\tnode2 -> node0 [label=\"hello\"];\n\t}\n}\n")
|
||||
|
||||
;; 2.3 Matrix Graphs
|
||||
(check-false (matrix-graph? (directed-graph '((a b) (b c))))))
|
||||
(check-false (matrix-graph? (directed-graph '((a b) (b c)))))
|
||||
(define mg (matrix->matrix-graph (matrix [[1 2] [3 #f]])))
|
||||
(check-true (matrix-graph? mg))
|
||||
(check-true (has-vertex? (matrix-graph->graph mg) 1)))
|
||||
|
||||
(test-case "4 Basic Graph Functions"
|
||||
;; 4.1 Breadth-first Search
|
||||
|
|
Loading…
Reference in a new issue