Datei:Adjacencylist linkedlistof linkedlists undirectedgraph.svg
Größe der PNG-Vorschau dieser SVG-Datei: 240 × 254 Pixel. Weitere aus SVG automatisch erzeugte PNG-Grafiken in verschiedenen Auflösungen: 227 × 240 Pixel | 454 × 480 Pixel | 726 × 768 Pixel | 968 × 1.024 Pixel | 1.935 × 2.048 Pixel
Originaldatei (SVG-Datei, Basisgröße: 240 × 254 Pixel, Dateigröße: 39 KB)
Diese Datei und die Informationen unter dem roten Trennstrich werden aus dem zentralen Medienarchiv Wikimedia Commons eingebunden.
Beschreibung
BeschreibungAdjacencylist linkedlistof linkedlists undirectedgraph.svg |
Deutsch: Adjazenzlisten des ungerichteten Graphen in implementiert mit einer einfach verketteten Liste der Knoten und einfach verketteten Adjazenzlisten.
English: Adjacencylist of a graph implemented as linked list of 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{list_node_horizontal}=[draw, rectangle split, rectangle split parts=2, rectangle split horizontal,
rounded corners=2pt,minimum height=5mm, minimum width=10mm, node distance=5mm,fill=red!35]
\tikzstyle{list_node_vertical}=[draw, rectangle split, rectangle split parts=2,
rounded corners=2pt,minimum height=10mm, minimum width=5mm, node distance=5mm,fill=green!40]
\tikzstyle{nil}=[draw, rectangle,minimum height=4mm, minimum width=4mm, node distance=5mm]
\def\Adjacencylist#1{%
% 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 pointer
\node[list_node_horizontal,right = of node\the\prevnode] (node\j) {\element};
\path[-] let \p1 = (node\j.two), \p2 = (node\j.center) in
node[pointer] (rightpointer\j) at (\x1+2,\y2){};
%draw incomming link from previous node
\draw[link,->] (rightpointer\the\prevnode) edge (node\j);
}
% Draw nil pointer
\node[nil, right = of rightpointer\j] (rightnil) {};
\draw (rightnil.north east) -- (rightnil.south west);
\draw (rightnil.north west) -- (rightnil.south east);
% Draw edge to nil pointer node
\path [link,->] (rightpointer\j) edge (rightnil);
}
\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}
\node (bottompointer0) at (0,0) {};
\foreach [count=\i] \index/\adlist in \inputgraph {
% a counter the refers to the previous node
\prevnode=\i
\advance\prevnode by -1
% draw the node from the list of graph vertices and a pointer to the next vertex
\node[list_node_vertical,below = of bottompointer\the\prevnode] (vnode\i){\index};
\path[-] let \p1 = (vnode\i.two), \p2 = (vnode\i.two west) in
node[pointer] (bottompointer\i) at (\x1+2,\y2){};
%draw incomming link from previous node
\draw[link,->] (bottompointer\the\prevnode) edge (vnode\i);
%set starting points for the adjacency list
\node (rightpointer0) at (vnode\i.text split) {};
\coordinate (node0) at (vnode\i.text split east);
%draw adjacency list
\Adjacencylist{\adlist}
}
% Draw nil pointer (for the list of vertices)
\node[nil, below = of bottompointer\i] (bottomnil) {};
\draw (bottomnil.north east) -- (bottomnil.south west);
\draw (bottomnil.north west) -- (bottomnil.south east);
% Draw edge to nil pointer node
\path [link,->] (bottompointer\i) edge (bottomnil);
\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
27. Juli 2015
image/svg+xml
02ec87e3a579d46aca60067fe5a84c4c7a4e081f
39.454 Byte
254 Pixel
240 Pixel
Dateiversionen
Klicke auf einen Zeitpunkt, um diese Version zu laden.
Version vom | Vorschaubild | Maße | Benutzer | Kommentar | |
---|---|---|---|---|---|
aktuell | 20:18, 27. Jul. 2015 | 240 × 254 (39 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 | 191.687pt |
---|---|
Höhe | 203.506pt |