Datei:Adjacencylist array of doublelinkedlists undirectedgraph.svg
Aus testwiki
Zur Navigation springen
Zur Suche springen
Größe der PNG-Vorschau dieser SVG-Datei: 370 × 128 Pixel. Weitere Auflösungen: 320 × 111 Pixel | 640 × 221 Pixel | 1.024 × 354 Pixel | 1.280 × 443 Pixel | 2.560 × 886 Pixel.
Originaldatei (SVG-Datei, Basisgröße: 370 × 128 Pixel, Dateigröße: 46 KB)
Diese Datei stammt aus Wikimedia Commons und kann von anderen Projekten verwendet werden. Die Beschreibung von deren Dateibeschreibungsseite wird unten angezeigt.
Beschreibung
| BeschreibungAdjacencylist array of doublelinkedlists undirectedgraph.svg |
Deutsch: Adjazenzlisten des ungerichteten Graphen in
English: Adjacencylist of a graph implemented as arrray 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/{d,b,d,e}, b/{c,a}, c/{b,d}, d/{a,a,c}, e/{a}}
% 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 |
Kurzbeschreibungen
Ergänze eine einzeilige Erklärung, was diese Datei darstellt.
In dieser Datei abgebildete Objekte
Motiv
Einige Werte ohne einen Wikidata-Eintrag
27. Juli 2015
image/svg+xml
d3c69660dcccc5746a99008e1471582884740cf1
47.546 Byte
128 Pixel
370 Pixel
Dateiversionen
Klicke auf einen Zeitpunkt, um diese Version zu laden.
| Version vom | Vorschaubild | Maße | Benutzer | Kommentar | |
|---|---|---|---|---|---|
| aktuell | 20:18, 27. Jul. 2015 | 370 × 128 (46 KB) | wikimediacommons>Wdvorak | User created page with UploadWizard |
Dateiverwendung
Die folgende Seite verwendet diese Datei: