Datei:Adjacencylist array of doublelinkedlists directedgraph.svg
Größe der PNG-Vorschau dieser SVG-Datei: 298 × 128 Pixel. Weitere aus SVG automatisch erzeugte PNG-Grafiken in verschiedenen Auflösungen: 320 × 137 Pixel | 640 × 275 Pixel | 1.024 × 440 Pixel | 1.280 × 550 Pixel | 2.560 × 1.100 Pixel
Originaldatei (SVG-Datei, Basisgröße: 298 × 128 Pixel, Dateigröße: 31 KB)
Diese Datei und die Informationen unter dem roten Trennstrich werden aus dem zentralen Medienarchiv Wikimedia Commons eingebunden.
Beschreibung
BeschreibungAdjacencylist array of doublelinkedlists directedgraph.svg |
Deutsch: Adjazenzlisten des gerichteten Graphen in implementiert mit mit einen knotenindizierten Array und doppelt verketteten Listen.
English: Adjacencylist of a digraph implemented as array of double linked lists.
Created using the tikz package and compiled with pdflatex. \documentclass{standalone}
\usepackage{ifthen}
\usepackage{tikz}
\usetikzlibrary{positioning,calc,shapes.multipart,arrows}
\tikzstyle{pointer}=[fill=black, circle, minimum width = 3pt, inner sep=0]
\tikzstyle{link}=[>=stealth]
\tikzstyle{array}=[draw, fill=green!40, minimum width = 7mm, minimum height = 7mm]
\tikzstyle{list_node_horizontal}=[draw, rectangle split, rectangle split parts=3, rectangle split horizontal,
rounded corners=2pt,minimum height=5mm, minimum width=15mm, node distance=8mm,fill=red!35]
\tikzstyle{nil}=[draw, rectangle,minimum height=4mm, minimum width=4mm, node distance=5mm]
\def\Adjacencylist#1{%
% Draw left nil pointer
\node[nil, right = of rightpointer0] (leftnil) {};
\draw (leftnil.north east) -- (leftnil.south west);
\draw (leftnil.north west) -- (leftnil.south east);
\coordinate (node0) at (leftnil); % shift list to the right
% Draw Adjacency List
\foreach [count=\j] \element in \adlist {
% a counter the refers to the previous node
\prevnode=\j
\advance\prevnode by -1
% draw the node from the list with a left and a right pointer
\node[list_node_horizontal,right = of node\the\prevnode] (node\j) {\nodepart{two} \element};
\path[-] let \p1 = (node\j.three), \p2 = (node\j.center) in
node[pointer] (rightpointer\j) at (\x1+2,\y2){};
\path[-] let \p1 = (node\j.text), \p2 = (node\j.center) in
node[pointer] (leftpointer\j) at (\x1+2,\y2){};
%draw incomming link from previous node
\draw[link, bend left=10mm,->] (rightpointer\the\prevnode) edge (node\j);
% if we are not at the first node we draw an edge to to previous node
\ifthenelse{\j > 1}{\draw[link, bend left=5mm,->] (leftpointer\j) edge (node\the\prevnode);}{}
}
%Check if list is empty
\ifthenelse{\j > 0}{ %non-empty list
% Draw right nil pointer
\node[nil, right = of rightpointer\j] (rightnil) {};
\draw (rightnil.north east) -- (rightnil.south west);
\draw (rightnil.north west) -- (rightnil.south east);
% Draw edges to both nil pointer nodes
\path [link,->] (rightpointer\j) edge (rightnil)
(leftpointer1) edge (leftnil);
}
{% empty list
% Use the ledt nil pointer as nil pointer for the whole list
\path [link,->] (rightpointer0) edge (leftnil);
}
}
\newcount\prevnode
\begin{document}
% Define graph as a list of pairs, where each pair consists of a node, the delimiter "/" and the set of adjacent nodes.
\newcommand{\inputgraph}{a/{b,d,e}, b/{c}, c/{d}, d/{a}, e/{}}
% Draw array and adjacency lists
\begin{tikzpicture}
\foreach [count=\i] \index/\adlist in \inputgraph {
\node[array] (rightpointer0) at (0,-\i*0.7) {\index};
\coordinate (node0) at (0,-\i*0.7);
\Adjacencylist{\adlist}
}
\end{tikzpicture}
\end{document}
|
Datum | |
Quelle | Eigenes Werk |
Urheber | Wdvorak |
Lizenz
Ich, der Urheber dieses Werkes, veröffentliche es unter der folgenden Lizenz:
Diese Datei wird unter der Creative-Commons-Lizenz CC0 1.0 Verzicht auf das Copyright zur Verfügung gestellt. | |
Die Person, die das Werk mit diesem Dokument verbunden hat, übergibt dieses weltweit der Gemeinfreiheit, indem sie alle Urheberrechte und damit verbundenen weiteren Rechte – im Rahmen der jeweils geltenden gesetzlichen Bestimmungen – aufgibt. Das Werk kann – selbst für kommerzielle Zwecke – kopiert, modifiziert und weiterverteilt werden, ohne hierfür um Erlaubnis bitten zu müssen.
http://creativecommons.org/publicdomain/zero/1.0/deed.enCC0Creative Commons Zero, Public Domain Dedicationfalsefalse |
In dieser Datei abgebildete Objekte
Motiv
Einige Werte ohne einen Wikidata-Eintrag
28. Juli 2015
image/svg+xml
b3e117cda56795bfaeeb1bf4d17ef6b3cc0e73cd
31.650 Byte
128 Pixel
298 Pixel
Dateiversionen
Klicke auf einen Zeitpunkt, um diese Version zu laden.
Version vom | Vorschaubild | Maße | Benutzer | Kommentar | |
---|---|---|---|---|---|
aktuell | 22:45, 28. Jul. 2015 | 298 × 128 (31 KB) | Wdvorak | User created page with UploadWizard |
Dateiverwendung
Die folgende Seite verwendet diese Datei:
Metadaten
Diese Datei enthält weitere Informationen (beispielsweise Exif-Metadaten), die in der Regel von der Digitalkamera oder dem verwendeten Scanner stammen. Durch nachträgliche Bearbeitung der Originaldatei können einige Details verändert worden sein.
Breite | 238.212pt |
---|---|
Höhe | 102.312pt |