Datenstruktur als Hashes

Beim Programmieren kommen häufig Datenstrukturen in Form eines Hashes zum Einsatz, wie etwa assoziative Arrays [7]. Graphviz bildet solche Strukturen ohne komplexe Verrenkungen ab, wenn Sie die richtige Syntax verwenden. So legt die Zeile 2 von Listing 4 fest, dass Sie einen gerichteten Graphen generieren möchten – der Parameter LR bestimmt dabei die Richtung von links nach rechts.

Listing 4

digraph G {
rankdir=LR;
node [shape=record, width=0.1, height=0.1];
knoten0 [label = "<f0> | <f1> | <f2>", height=1.5];
node [width=1.5];
knoten1 [label = "{<n> n14 | 719 | <p>}"];
knoten2 [label = "{<n> k71 | 216 | <p>}"];
knoten3 [label = "{<n> n39 | 771 | <p>}"];
knoten4 [label = "{<n> k56 | 250 | <p>}"];
knoten5 [label = "{<n> a34 | 125 | <p>}"];
knoten0:f0 -> knoten1:n;
knoten1:p -> knoten2:n;
knoten0:f1 -> knoten3:n;
knoten0:f2 -> knoten4:n;
knoten4:p -> knoten5:n;
}

Die Zeilen 5 bis 11 definieren den Inhalt des Knotens als zusätzliche Struktur und greifen später auf die einzelnen Elemente über deren Namen zu. Dabei hat knoten0 (Zeile 5) die drei Elemente f0, f1 und f2, während knoten1 bis knoten5 (Zeile 7 bis 11) jeweils über die beiden Elemente n und p verfügen. Das mittlere Element hat keinen Bezeichner, sondern nur den angegebenen Wert. Das Verlinken der Knoten erfolgt in den Zeilen 13 bis 17, den Rest übernimmt Graphviz (Abbildung 4).

Abbildung 4: Wer sich beim Programmieren die Zusammenhänge von Hash-Tabellen klarmachen möchte, dem hilft Graphviz mit den entsprechenden Funktionen.

Abhängigkeiten

Ein anderes Beispiel stammt direkt aus dem "Motorraum" eines Linux-Systems: Mit dem Programm Debtree [8] erkunden Sie die Abhängigkeiten zwischen Paketen auf einem Debian-basierten System. Dazu erwartet es als Parameter den Namen eines oder mehrerer Pakete – der Einfachheit halber verwenden wir im Beispiel lediglich sqlite3 für die Datenbank SQLite3 [9].

Das Programm liefert das Ergebnis im Dot-Format. Der Aufruf aus Listing 5 erzeugt auf der Kommandozeile die angesprochene Liste und leitet das Ergebnis in die Datei sqlite3.dot um (Abbildung 5). Daraus generieren Sie mit Dot eine Bilddatei (Abbildung 6).

Listing 5

$ debtree sqlite3 > sqlite3.dot
$ dot -Tpng sqlite3.dot > sqlite3.png
Abbildung 5: Die Dot-Beschreibung zu den Abhängigkeiten des Pakets sqlite3 auf einem Debian-basierten System.
Abbildung 6: Mit Debtree und Graphviz sehen Sie auf einen Blick, was für einen Rattenschwanz an Programmen eine Installation nach sich zöge.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Graphviz berechnet flexibel Graphen
    Statt sich über das Layout einer Grafik zu verkünsteln, konzentrieren Sie sich mit Graphviz ganz auf die Inhalte und überlassen der Software das Design.
  • Aufpoliert
    Das Programm Graphviz hilft beim Erstellen von Grafiken. Den letzten Schliff verleihen Sie den Ergebnissen aber am besten mittels LaTeX.
  • Ubuntu, Linux Mint und Knoppix
    Ubuntu, Linux Mint und Knoppix basieren auf der Distribution Debian – wir verraten Tricks und Kniffe, welche die Arbeit auf diesen Systemen angenehmer machen.
  • Diagramme erstellen mit Yed
    Mit Yed meistern Sie spielend selbst komplexe Flussdiagramme und Objektbäume. Dank intelligenter Ansichten und Hilfsfunktionen behalten Sie immer den Überblick.
  • Strukturiert
    Der elektronische Notizzettel Cherrytree richtet sein Augenmerk auf das strukturierte Aufbereiten unterschiedlichster Informationen.
Kommentare

Infos zur Publikation

LU 10/2016: Kryptographie

Digitale Ausgabe: Preis € 0,00
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

zweites Bildschirm auf gleichem PC einrichten
H A, 30.09.2016 19:16, 2 Antworten
Hallo, ich habe Probleme mein zweites Bildschirm einzurichten.(Auf Debian Jessie mit Gnome) Ich...
Probleme mit MPC/MPD
Matthias Göhlen, 27.09.2016 13:39, 2 Antworten
Habe gerade mein erstes Raspi Projekt angefangen, typisches Einsteigerding: Vom Raspi 3B zum Radi...
Soundkarte wird erkannt, aber kein Ton
H A, 25.09.2016 01:37, 6 Antworten
Hallo, Ich weiß, dass es zu diesem Thema sehr oft Fragen gestellt wurden. Aber da ich ein Linu...
Scannen nur schwarz-weiß möglich
Werner Hahn, 20.09.2016 13:21, 2 Antworten
Canon Pixma MG5450S, Dell Latitude E6510, Betriebssyteme Ubuntu 16.04 und Windows 7. Der Canon-D...
Meteorit NB-7 startet nicht
Thomas Helbig, 13.09.2016 02:03, 4 Antworten
Verehrte Community Ich habe vor Kurzem einen Netbook-Oldie geschenkt bekommen. Beim Start ersch...