zurück zu Prim oder zurück zu Kruskal
;;;                                   [minimal-prim Grafik.scm]
; Grafikprogramm für die Darstellung des Weges beim
; minimal spanning tree - Problem (greedy).
; Die Prozedur bekommt hier eine Liste von Kanten und die Koordinaten
; übergeben.

(require-library "graphics.ss" "graphics")
(open-graphics)
(define Grafik
  (open-viewport "minimal mit greedy Grafik" 400 400))

(define
  (Punkt-Koordinaten Punkt Koordinaten)
  (apply make-posn (cadr (assoc Punkt Koordinaten))))

(define
  (zeichne Weg Koordinaten)
  ((draw-viewport Grafik) (make-rgb 1 1 1))
  (let
      loop
    ((Liste Weg))
    (cond
      ((null? Liste)
       ((draw-string Grafik) (make-posn 150 200) "Taste zum Abbruch !")
       (warte)
       (close-graphics)
       (void))
      (else
       ((draw-line Grafik)
        (Punkt-Koordinaten (caar Liste) Koordinaten)
        (Punkt-Koordinaten (cadar Liste) Koordinaten)
        (make-rgb 0 0 0))
       ((draw-rectangle Grafik)
        (Punkt-Koordinaten (caar Liste) Koordinaten)
        2 2 (make-rgb 1 0 0))
       (loop (cdr Liste))))))

(define
  (warte)
  (viewport-flush-input Grafik)
  (get-key-press Grafik))