<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Datenstruktur</id>
	<title>Datenstruktur - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://demowiki.knowlus.com/index.php?action=history&amp;feed=atom&amp;title=Datenstruktur"/>
	<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Datenstruktur&amp;action=history"/>
	<updated>2026-05-15T01:02:58Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Demo Wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://demowiki.knowlus.com/index.php?title=Datenstruktur&amp;diff=10867&amp;oldid=prev</id>
		<title>imported&gt;RucolaSpacecat: Links überprüft &amp; aktualisiert</title>
		<link rel="alternate" type="text/html" href="https://demowiki.knowlus.com/index.php?title=Datenstruktur&amp;diff=10867&amp;oldid=prev"/>
		<updated>2025-04-02T12:59:32Z</updated>

		<summary type="html">&lt;p&gt;Links überprüft &amp;amp; aktualisiert&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Datei:Python 3. The standard type hierarchy.png|mini]]&lt;br /&gt;
&lt;br /&gt;
In der [[Informatik]] und [[Softwaretechnik]] ist eine &amp;#039;&amp;#039;&amp;#039;Datenstruktur&amp;#039;&amp;#039;&amp;#039; ein Objekt, welches zur Speicherung und Organisation von [[Daten]] dient. Es handelt sich um eine Struktur, weil die Daten in einer bestimmten Art und Weise angeordnet und verknüpft werden, um den Zugriff auf sie und ihre Verwaltung [[Effizienz (Informatik)|effizient]] zu ermöglichen.&lt;br /&gt;
&lt;br /&gt;
Datenstrukturen sind nicht nur durch die enthaltenen Daten charakterisiert, sondern vor allem durch die [[Operation (Informatik)|Operationen]] auf diesen Daten, die Zugriff und Verwaltung ermöglichen und realisieren.&lt;br /&gt;
&lt;br /&gt;
== Erklärung ==&lt;br /&gt;
Die Festlegung (&amp;#039;&amp;#039;Definition&amp;#039;&amp;#039;) von Datenstrukturen erfolgt im Allgemeinen durch eine exakte Beschreibung (&amp;#039;&amp;#039;[[Spezifikation]]&amp;#039;&amp;#039;) zur Datenhaltung und der dazu nötigen Operationen. Diese konkrete Spezifikation legt das allgemeine Verhalten der Operationen fest und abstrahiert damit von der konkreten Implementierung der Datenstruktur.&lt;br /&gt;
&lt;br /&gt;
Wird der Schwerpunkt der Betrachtung nicht auf die konkrete Implementierung der Operationen verschoben, so wird anstelle des Begriffs Datenstruktur auch häufig von einem [[Abstrakter Datentyp|abstrakten Datentyp]] gesprochen. Der Übergang von der Datenstruktur zu einem abstrakten Datentyp ist dabei nicht klar definiert, sondern hängt einzig von der Betrachtungsweise ab. Mit Blick auf den oft veränderlichen Speicherbedarf vieler Datenstrukturen wird dann auch von &amp;#039;&amp;#039;dynamischen Datentypen&amp;#039;&amp;#039; gesprochen, denen technisch eine [[dynamische Speicherverwaltung]] zugrunde liegt.&lt;br /&gt;
&lt;br /&gt;
Von den meisten Datenstrukturen gibt es neben ihrer Grundform viele Spezialisierungen, die eigens für die Erfüllung einer bestimmten Aufgabe spezifiziert wurden. So sind beispielsweise [[B-Baum|B-Bäume]] als Spezialisierung der Datenstruktur Baum besonders gut für Implementierungen von [[Datenbank]]en geeignet.&lt;br /&gt;
&lt;br /&gt;
Bei vielen [[Algorithmus|Algorithmen]] hängt der Ressourcenbedarf, also sowohl die benötigte [[Asymptotische Laufzeit|Laufzeit]] als auch der Speicherplatzbedarf, von der Verwendung geeigneter Datenstrukturen ab.&lt;br /&gt;
&lt;br /&gt;
== Grundlegende Datenstrukturen ==&lt;br /&gt;
Die folgenden Datenstrukturen sind in der Regel für die klassische [[imperative Programmierung]] entwickelt und optimiert worden. Andere [[Programmierparadigma|Programmierparadigmen]] wie die [[funktionale Programmierung]] können durchaus andere Datenstrukturen erfordern.&lt;br /&gt;
&lt;br /&gt;
=== Datensatz ===&lt;br /&gt;
{{Hauptartikel|Datensatz}}&lt;br /&gt;
Datensätze (auch [[Tupel (Informatik)|&amp;#039;Tupel&amp;#039;]]) sind die einfachsten Datenstrukturen. Sie verkörpern üblicherweise in einer fest definierten Anzahl und Folge Werte, die andere Werte enthalten. Datensätze identifizieren sich meist durch eines oder mehrere der in ihnen enthaltenen Elemente, oft [[Datenfeld]] genannt.&lt;br /&gt;
&lt;br /&gt;
=== Array ===&lt;br /&gt;
{{Hauptartikel|Array (Datentyp)}}&lt;br /&gt;
Das Array (auch &amp;#039;&amp;#039;Feld&amp;#039;&amp;#039;) ist die einfachste verwendete Datenstruktur. Es werden hierbei mehrere Variablen vom selben Basis[[datentyp]] gespeichert. Ein Zugriff auf die einzelnen Elemente wird über einen Index möglich. Technisch gesehen entspricht dieser dem Wert, der zu der Startadresse des Arrays im Speicher addiert wird, um die Adresse des Objektes zu erhalten. Die einzigen notwendigen Operationen sind das &amp;#039;&amp;#039;indizierte Speichern&amp;#039;&amp;#039; und das &amp;#039;&amp;#039;indizierte Lesen&amp;#039;&amp;#039;, die auf jedes Element des Arrays direkt zugreifen können. Im eindimensionalen Fall wird das Array häufig als [[Vektor]] und im zweidimensionalen Fall als [[Tabelle]] oder [[Matrix (Mathematik)|Matrix]] bezeichnet. Arrays sind aber keinesfalls nur auf zwei Dimensionen beschränkt, sondern werden beliebig mehrdimensional verwendet. Wegen ihrer Einfachheit und grundlegenden Bedeutung bieten die allermeisten Programmiersprachen eine konkrete Umsetzung dieser Datenstruktur als zusammengesetzten Datentyp Array im Grundsprachumfang an.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für die Verwendung von Arrays ist die Speicherung von Noten in einem Notenheft. Angenommen, wir haben ein Notenbuch mit Platz für 10 Noten. Wir können Arrays verwenden, um diese Noten effizient zu speichern. Jede Note wird anhand ihres Index im Array gespeichert.&amp;lt;ref&amp;gt;T. H. Cormen, C. E. Leiserson, R. L. Rivest &amp;amp; C. Stein: &amp;#039;&amp;#039;Introduction to Algorithms.&amp;#039;&amp;#039; MIT Press 2009. &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Zuordnungstabelle ====&lt;br /&gt;
{{Hauptartikel|Zuordnungstabelle}}&lt;br /&gt;
Einen Sonderfall bildet die Zuordnungstabelle (auch assoziatives Array oder Schlüssel-Wert-Paar), bei dem nicht über einen numerischen Index, sondern über einen [[Nummerung|Schlüssel]] auf die gespeicherten Daten zugegriffen wird. Eine mögliche Art, ein assoziatives Array zu implementieren, ist die [[Hashtabelle]].&lt;br /&gt;
&lt;br /&gt;
==== Menge ====&lt;br /&gt;
{{Hauptartikel|Menge (Datenstruktur)}}&lt;br /&gt;
Einen weiteren Sonderfall bildet die Menge. Sie ist ungeordnet. Es kann nicht mittels Index oder Schlüssel auf konkrete Werte zugegriffen werden. Die Menge entspricht einer Zuordnungstabelle mit Schlüsseln, die nur einmalig vorkommen können, aber ohne Werte.&lt;br /&gt;
&lt;br /&gt;
=== Verbund ===&lt;br /&gt;
{{Hauptartikel|Verbund (Datentyp)}}&lt;br /&gt;
Ein Verbund (oder {{enS|Record}}) ist ein [[Datentyp]], der aus einem oder mehreren Datentypen zusammengesetzt wurde.&lt;br /&gt;
&lt;br /&gt;
=== (Verkettete) Liste ===&lt;br /&gt;
{{Hauptartikel|Liste (Datenstruktur)}}&lt;br /&gt;
Die (verkettete) Liste ist eine Datenstruktur zur dynamischen Speicherung von beliebig vielen Objekten. Dabei beinhaltet jedes Listenelement einer verketteten Liste als Besonderheit einen [[Zeiger (Informatik)|Verweis]] auf das nächste Element, wodurch die Gesamtheit der Objekte zu einer Verkettung von Objekten wird. Die zu einer Liste gehörenden Operationen sind relativ unspezifiziert. Sie werden oft in komplizierteren Datenstrukturen verwendet und statt über Operationen wird dort aus Effizienzgründen meist direkt auf ihre Elemente zugegriffen. Die in Programmbibliotheken angebotenen Listen sind in ihrer zugrunde liegenden Datenstruktur meist viel komplexer und stellen nicht selten gar keine echten Listen dar, geben sich nach außen aber als solche aus. Listen sind stets lineare Strukturen. Werden Vorgänger und Nachfolger bidirektional verkettet, so spricht man von einer doppelt-verketteten Liste.&lt;br /&gt;
&lt;br /&gt;
=== Warteschlange ===&lt;br /&gt;
{{Hauptartikel|Warteschlange (Datenstruktur)}}&lt;br /&gt;
In einer Warteschlange ({{enS|queue}}) kann eine beliebige Anzahl von Objekten gespeichert werden, jedoch können die gespeicherten Objekte nur in der gleichen Reihenfolge wieder gelesen werden, wie sie gespeichert wurden. Dies entspricht dem [[FIFO]]-Prinzip.&lt;br /&gt;
Für die Definition und damit die Spezifikation der Queue ist es unerheblich, welche Objekte in ihr gespeichert werden. Zu einer Queue gehören zumindest die Operationen&lt;br /&gt;
* &amp;#039;&amp;#039;enqueue&amp;#039;&amp;#039;, um ein Objekt in der Warteschlange zu speichern und&lt;br /&gt;
* &amp;#039;&amp;#039;dequeue&amp;#039;&amp;#039;, um das zuerst gespeicherte Objekt wieder zu lesen und aus der Warteschlange zu entfernen.&lt;br /&gt;
Eine Warteschlange wird gewöhnlich als verkettete Liste implementiert, kann intern aber auch ein Array verwenden; in diesem Fall ist die Anzahl der Elemente begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== Stapelspeicher ====&lt;br /&gt;
{{Hauptartikel|Stapelspeicher}}&lt;br /&gt;
In einem Stapelspeicher ({{enS|stack}}) kann eine beliebige Anzahl von Objekten gespeichert werden, jedoch können die gespeicherten Objekte nur in umgekehrter Reihenfolge wieder gelesen werden. Dies entspricht dem [[Last In – First Out|LIFO]]-Prinzip. Für die Definition und damit die Spezifikation des Stapelspeichers ist es unerheblich, welche Objekte in ihm gespeichert werden. Zu einem Stapelspeicher gehören zumindest die Operationen&amp;lt;ref&amp;gt;D. Baldwin &amp;amp; G. Scragg: &amp;#039;&amp;#039;Algorithms and Data Structures: The Science of Computing.&amp;#039;&amp;#039; CRC Press 2017.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;push&amp;#039;&amp;#039;, um ein Objekt im Stapelspeicher abzulegen und&lt;br /&gt;
* &amp;#039;&amp;#039;pop&amp;#039;&amp;#039;, um das zuletzt gespeicherte Objekt wieder zu lesen und vom Stapel zu entfernen.&lt;br /&gt;
* (&amp;#039;&amp;#039;top&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;peek&amp;#039;&amp;#039;, um das oberste Element zu lesen, ohne es zu löschen)&lt;br /&gt;
Die &amp;#039;&amp;#039;top&amp;#039;&amp;#039;-Operation ist nicht zwingend vorgeschrieben, wird aber oft implementiert, um &amp;#039;&amp;#039;pop&amp;#039;&amp;#039;/&amp;#039;&amp;#039;push&amp;#039;&amp;#039; zu ersetzen, da es oft interessant ist, das oberste Element zu „testen“. Ein Stapelspeicher wird gewöhnlich als Liste implementiert, kann aber auch ein Vektor sein.&lt;br /&gt;
&lt;br /&gt;
Ein  Beispiel für die Verwendung von Stapeln ist die Verlaufsfunktion des Browsers. Wenn wir im Internet surfen und verschiedene Websites besuchen, werden die besuchten Seiten normalerweise in der Verlaufsliste gespeichert.&lt;br /&gt;
&lt;br /&gt;
==== Deque ====&lt;br /&gt;
{{Hauptartikel|Deque}}&lt;br /&gt;
Bei der Deque (Double-ended queue) handelt es sich um eine Datenstruktur ähnlich der Warteschlange oder des Stapelspeichers. Es kombiniert die Eigenschaften beider Datenstrukturen. Der Unterschied besteht darin, dass die Daten an beiden Enden gelesen, eingefügt oder entfernt werden können.&lt;br /&gt;
&lt;br /&gt;
==== Vorrangwarteschlange ====&lt;br /&gt;
{{Hauptartikel|Vorrangwarteschlange}}&lt;br /&gt;
Eine Spezialisierung der Warteschlange ist die Vorrangwarteschlange, die auch &amp;#039;&amp;#039;Prioritätswarteschlange&amp;#039;&amp;#039; bzw. engl. {{lang|en|&amp;#039;&amp;#039;Priority Queue&amp;#039;&amp;#039;}} genannt wird. Dabei wird vom [[FIFO]]-Prinzip abgewichen. Die Durchführung der &amp;#039;&amp;#039;enqueue&amp;#039;&amp;#039;-Operation, die in diesem Fall auch &amp;#039;&amp;#039;insert&amp;#039;&amp;#039;-Operation genannt wird, sortiert das Objekt gemäß einer gegebenen Priorität, die jedes Objekt mit sich führt, in die Vorrangwarteschlange ein. Die &amp;#039;&amp;#039;dequeue&amp;#039;&amp;#039;-Operation liefert immer das Objekt mit der höchsten Priorität. Vorrangwarteschlangen werden meist mit [[Heap (Datenstruktur)|Heaps]] implementiert.&lt;br /&gt;
&lt;br /&gt;
=== Graph ===&lt;br /&gt;
{{Hauptartikel|Graph (Graphentheorie)|Graphentheorie}}&lt;br /&gt;
Ein Graph ermöglicht es als Datenstruktur die Unidirektionalität der Verknüpfung zu überwinden. Die Operationen sind auch hier das &amp;#039;&amp;#039;Einfügen&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Löschen&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Finden&amp;#039;&amp;#039; eines Objekts. Die bekannteste Repräsentation von Graphen im Computer sind die [[Adjazenzmatrix]], die [[Inzidenzmatrix]] und [[Adjazenzliste]]. Planare Graphen lassen sich mittels [[Half-Edge-Datenstruktur]] abbilden.&lt;br /&gt;
&lt;br /&gt;
=== Baum ===&lt;br /&gt;
{{Hauptartikel|Baum (Datenstruktur)}}&lt;br /&gt;
{{Hauptartikel|Baum (Graphentheorie)}}&lt;br /&gt;
&lt;br /&gt;
Bäume sind spezielle Formen von Graphen in der [[Graphentheorie]]. Als Datenstruktur werden meist nur [[Out-Tree]]s verwendet. Dabei können ausgehend von der [[Wurzel (Graphentheorie)|Wurzel]] mehrere gleichartige Objekte miteinander verkettet werden, sodass die lineare Struktur der Liste aufgebrochen wird und eine Verzweigung stattfindet. Da Bäume zu den meist verwendeten Datenstrukturen in der Informatik gehören, gibt es viele Spezialisierungen.&lt;br /&gt;
&lt;br /&gt;
So beträgt bei [[Binärbaum|Binärbäumen]] die Anzahl der Kinder höchstens zwei und in [[Balancierter Baum#Höhenbalance|höhen-balancierten Bäumen]] gilt zusätzlich, dass sich die [[Höhe (Graphentheorie)|Höhen]] des linken und rechten Teilbaums an jedem [[Knoten (Graphentheorie)|Knoten]] nicht zu sehr unterscheiden.&lt;br /&gt;
&lt;br /&gt;
Bei geordneten Bäumen, insbesondere [[Suchbaum|Suchbäumen]], sind die Elemente in der Baumstruktur [[Ordnungsrelation|geordnet]] abgelegt, sodass man schnell Elemente im Baum finden kann. Man unterscheidet hier weiter in [[Binärer Suchbaum|binäre Suchbäume]] mit [[AVL-Baum|AVL-Bäumen]] (darunter [[Fibonacci-Baum|Fibonacci-Bäume]]) als balancierte Version und [[B-Baum|B-Bäumen]] sowie einer Variante, den [[B*-Baum|B*-Bäumen]]. Spezialisierungen von B-Bäumen sind wiederum [[2-3-4-Baum|2-3-4-Bäume]], welche oft als [[Rot-Schwarz-Baum|Rot-Schwarz-Bäume]] implementiert werden.&lt;br /&gt;
&lt;br /&gt;
Nicht sortiert, aber „verschachtelt“ sind geometrische Baumstrukturen wie der [[R-Baum]] und seine Varianten. Hier werden nur diejenigen Teilbäume durchsucht, die sich mit dem angefragten Bereich überlappen.&lt;br /&gt;
&lt;br /&gt;
Bäume sind in ihrem Aufbau zwar mehrdimensional jedoch in der Verkettung der Objekte oft unidirektional. Die Verkettung der gespeicherten Objekte beginnt bei der Wurzel des Baums und von dort in Richtung der Knoten des Baums.&lt;br /&gt;
&lt;br /&gt;
=== Heap ===&lt;br /&gt;
{{Hauptartikel|Heap (Datenstruktur)}}&lt;br /&gt;
Der Heap (auch Halde oder Haufen) vereint die Datenstruktur eines Baums mit den Operationen einer Vorrangwarteschlange. Häufig hat der Heap neben den minimal nötigen Operationen wie &amp;#039;&amp;#039;insert&amp;#039;&amp;#039;, &amp;#039;&amp;#039;remove&amp;#039;&amp;#039; und &amp;#039;&amp;#039;extractMin&amp;#039;&amp;#039; auch noch weitere Operationen wie &amp;#039;&amp;#039;merge&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;changeKey&amp;#039;&amp;#039;. Je nach Reihenfolge der Priorität in der Vorrangwarteschlange wird ein Min-Heap oder ein Max-Heap verwendet. Weitere Spezialisierungen des Heap sind der [[Binärer Heap|Binäre Heap]], der [[Binomial-Heap]] und der [[Fibonacci-Heap]]. Heaps werden meistens über Bäume aufgebaut.&lt;br /&gt;
&lt;br /&gt;
==== Treap ====&lt;br /&gt;
{{Hauptartikel|Treap}}&lt;br /&gt;
Der Treap vereinigt Eigenschaften von Bäumen („Trees“) und Heaps in sich.&lt;br /&gt;
&lt;br /&gt;
=== Hashtabelle ===&lt;br /&gt;
{{Hauptartikel|Hashtabelle}}&lt;br /&gt;
Die Hashtabelle bzw. Streuwerttabelle ist eine spezielle [[Indexstruktur]], bei der die Speicherposition direkt berechnet werden kann. Hashtabellen stehen dabei in Konkurrenz zu Baumstrukturen, die im Gegensatz zu Hashtabellen alle Indexwerte in einer Ordnung wiedergeben können, aber einen größeren Verwaltungsaufwand benötigen, um den Index bereitzustellen. Beim Einsatz einer Hashtabelle zur Suche in Datenmengen spricht man auch vom &amp;#039;&amp;#039;Hashverfahren&amp;#039;&amp;#039;. Bei sehr großen Datenmengen kann eine [[verteilte Hashtabelle]] zum Einsatz kommen.&lt;br /&gt;
&lt;br /&gt;
== Speicher- und Rechenaufwand von Datenstrukturen ==&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Operation!![[Array (Datentyp)|Array]]!!Dynamisches&amp;lt;br /&amp;gt;Array !!Verlinkte&amp;lt;br /&amp;gt;[[Liste (Datenstruktur)|Liste]]!!Balancierter&amp;lt;br /&amp;gt;[[Balancierter Baum|Baum]] !![[Hashtabelle]]&lt;br /&gt;
|-&lt;br /&gt;
|Einfügung/Löschung&amp;lt;br /&amp;gt; am Anfang&lt;br /&gt;
|style=&amp;quot;background:#eeeeee&amp;quot;|&amp;#039;&amp;#039;N/A&amp;#039;&amp;#039;&lt;br /&gt;
|style=&amp;quot;background:#ffdddd&amp;quot;|[[Landau-Symbole|Θ]](&amp;#039;&amp;#039;n&amp;#039;&amp;#039;) &amp;lt;!-- Verlinkung des Landau-Symbols &amp;#039;Θ&amp;#039; --&amp;gt;&lt;br /&gt;
|style=&amp;quot;background:#ddffdd&amp;quot;|Θ(1)&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; style=&amp;quot;background:#ffffdd&amp;quot;|Θ(&amp;#039;&amp;#039;log n&amp;#039;&amp;#039;)&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; style=&amp;quot;background:#ffffdd&amp;quot;|Θ(&amp;#039;&amp;#039;1&amp;#039;&amp;#039;) bis Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&amp;lt;ref&amp;gt;{{Internetquelle |autor=Dan Schmidt |url=http://dfan.org/real/tpj_hash.html |titel=Building a Better Hash |abruf=2025-04-02}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Einfügung/Löschung&amp;lt;br /&amp;gt; am Ende&lt;br /&gt;
|style=&amp;quot;background:#eeeeee&amp;quot;|&amp;#039;&amp;#039;N/A&amp;#039;&amp;#039;&lt;br /&gt;
|style=&amp;quot;background:#ddffdd&amp;quot;|Θ(1)&lt;br /&gt;
|style=&amp;quot;background:#ddffdd&amp;quot;|Θ(1)&amp;lt;ref&amp;gt;Unter der Annahme, dass die verlinkte Liste sich einen Pointer der Datenendposition merkt, sonst muss erst das Ende der Liste mit dem Zeitaufwand Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;) ermittelt werden.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Einfügung/Löschung&amp;lt;br /&amp;gt; mittig&lt;br /&gt;
|style=&amp;quot;background:#eeeeee&amp;quot;|&amp;#039;&amp;#039;N/A&amp;#039;&amp;#039;&lt;br /&gt;
|style=&amp;quot;background:#ffdddd&amp;quot;|Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&lt;br /&gt;
|style=&amp;quot;background:#ddffdd&amp;quot;|suche +&amp;lt;br /&amp;gt;Θ(1)&amp;lt;ref&amp;gt;Gerald Kruse. [http://www.juniata.edu/faculty/kruse/cs240/syllabus.htm CS 240 Lecture Notes]{{Toter Link |url=http://www.juniata.edu/faculty/kruse/cs240/syllabus.htm |date=2025-04 |text=CS 240 Lecture Notes |fix-attempted=1}}: {{Webarchiv |url=http://www.juniata.edu/faculty/kruse/cs240/linkedlist2.htm |text=Linked Lists Plus: Complexity Trade-offs |archive-today=20120805083210}}. Juniata College. Spring 2008.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Suche&lt;br /&gt;
|style=&amp;quot;background:#ffdddd&amp;quot;|Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&lt;br /&gt;
|style=&amp;quot;background:#ffdddd&amp;quot;|Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&lt;br /&gt;
|style=&amp;quot;background:#ffdddd&amp;quot;|Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&lt;br /&gt;
|style=&amp;quot;background:#ffffdd&amp;quot;|Θ(&amp;#039;&amp;#039;log n&amp;#039;&amp;#039;)&lt;br /&gt;
|style=&amp;quot;background:#ffffdd&amp;quot;|Θ(&amp;#039;&amp;#039;1&amp;#039;&amp;#039;) bis Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&lt;br /&gt;
|-&lt;br /&gt;
|Zusätzlicher Speicherplatz&amp;lt;br /&amp;gt;gegenüber Array&lt;br /&gt;
|style=&amp;quot;background:#ddffdd&amp;quot;|0&lt;br /&gt;
|style=&amp;quot;background:#ffffdd&amp;quot;|0, Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&amp;lt;ref&amp;gt;Unter der Annahme, dass ein Puffer für Erweiterungen vorgehalten wird.&amp;lt;/ref&amp;gt;&lt;br /&gt;
|style=&amp;quot;background:#ffdddd&amp;quot;|Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&lt;br /&gt;
|style=&amp;quot;background:#ffdddd&amp;quot;|Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&lt;br /&gt;
|style=&amp;quot;background:#ffdddd&amp;quot;|Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&lt;br /&gt;
|-&lt;br /&gt;
|Zugriff auf ein beliebiges/zufälliges Element&lt;br /&gt;
|style=&amp;quot;background:#ddffdd&amp;quot;|Θ(1)&lt;br /&gt;
|style=&amp;quot;background:#ddffdd&amp;quot;|Θ(1)&lt;br /&gt;
|style=&amp;quot;background:#ffdddd&amp;quot;|Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&lt;br /&gt;
|style=&amp;quot;background:#ffdddd&amp;quot;|Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&lt;br /&gt;
|style=&amp;quot;background:#ffdddd&amp;quot;|Θ(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
{{Commonscat|Data structures|Datenstruktur}}&lt;br /&gt;
* [[Kontrollstruktur]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Ellis Horowitz, Sartaj Sahni, Susan Anderson-Freed: &amp;#039;&amp;#039;Grundlagen von Datenstrukturen in C&amp;#039;&amp;#039;. International Thomson Publishing, Bonn 1994, ISBN 3-929821-00-1.&lt;br /&gt;
* Chris Okasaki: &amp;#039;&amp;#039;Purely Functional Data Structures&amp;#039;&amp;#039;. Cambridge University Press, Cambridge 1999, ISBN 0-521-66350-4&lt;br /&gt;
* Thomas Ottmann, Peter Widmayer: &amp;#039;&amp;#039;Algorithmen und Datenstrukturen&amp;#039;&amp;#039;. 4. Auflage. Spektrum Akademischer Verlag, Heidelberg 2002, ISBN 3-8274-1029-0.&lt;br /&gt;
* Hanan Samet: &amp;#039;&amp;#039;Foundations of Multidimensional and Metric Data Structures.&amp;#039;&amp;#039; Elsevier, Amsterdam 2006, ISBN 0-12-369446-9&lt;br /&gt;
* [[Niklaus Wirth]]: &amp;#039;&amp;#039;Algorithmen und Datenstrukturen in Pascal&amp;#039;&amp;#039;. 5. Auflage. Teubner, Stuttgart 2000, ISBN 3-519-22250-7&lt;br /&gt;
* {{Literatur |Autor=Martin Dietzfelbinger, Kurt Mehlhorn, Peter Sanders |Titel=Algorithmen und Datenstrukturen |Hrsg=Springer |Verlag=Springer |Ort=Berlin Heidelberg |Datum=2014 |ISBN=978-3-642-05471-6 }}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Datenstruktur| ]]&lt;br /&gt;
[[Kategorie:Elektronischer Datenaustausch|!Datenstruktur]]&lt;/div&gt;</summary>
		<author><name>imported&gt;RucolaSpacecat</name></author>
	</entry>
</feed>