Datenstruktur: Unterschied zwischen den Versionen

Aus KGS-Wiki
(→‎Verkettete Liste: Kapitel eingefügt)
K (Link gefixt)
Zeile 1: Zeile 1:
Sobald Daten eine komplexere Form annehmen als eine einzelne [[Variable]] verarbeiten kann, müssen sie in speziellen [[Datenstruktur]]en organisiert werden.
Sobald Daten eine komplexere Form annehmen als eine einzelne [[Variable (Informatik)|Variable]] verarbeiten kann, müssen sie in speziellen [[Datenstruktur]]en organisiert werden.


Diese Datenstrukturen unterscheiden sich im Hinblick auf die Zugriffsmöglichkeiten, die sie auf die Daten bieten, sowie auf die [[Laufzeit|Zeit]], die dafür nötig ist.
Diese Datenstrukturen unterscheiden sich im Hinblick auf die Zugriffsmöglichkeiten, die sie auf die Daten bieten, sowie auf die [[Laufzeit|Zeit]], die dafür nötig ist.
Zeile 17: Zeile 17:
Eine '''verkettete Liste''' (engl. '''linked list''') ist eine Datenstruktur, die beliebig viele Elemente in linearer Form speichern kann, d.h. zu jedem Element außer dem letzten existiert genau ein Nachfolger und zu jedem Element außer dem ersten existiert genau ein Vorgänger.
Eine '''verkettete Liste''' (engl. '''linked list''') ist eine Datenstruktur, die beliebig viele Elemente in linearer Form speichern kann, d.h. zu jedem Element außer dem letzten existiert genau ein Nachfolger und zu jedem Element außer dem ersten existiert genau ein Vorgänger.


Praktisch an verketteten Listen ist, dass man mit relativ geringem Aufwand mittendrin Elemente löschen oder einfügen kann, ohne dass Lücken entstehen oder potenziell größere Datenmengen verschoben werden müssen. Auch für die Implementierung von [[Stack|Stacks]] oder [[Queue|Queues]] sind sie geeeignet.
Praktisch an verketteten Listen ist, dass man mit relativ geringem Aufwand mittendrin Elemente löschen oder einfügen kann, ohne dass Lücken entstehen oder potenziell größere Datenmengen verschoben werden müssen. Auch für die Implementierung von [[Stack|Stack]]s oder [[Queue|Queue]]s sind sie geeeignet.


Nachteilig ist, dass Operationen wie Suchen eine Laufzeit in {{O|n}} aufweisen.
Nachteilig ist, dass Operationen wie Suchen eine Laufzeit in {{O|n}} aufweisen.
Zeile 38: Zeile 38:
Siehe auch [[Schlüssel-Wert-Datenstruktur]]
Siehe auch [[Schlüssel-Wert-Datenstruktur]]


Auch bekannt als ''Assoziatives Array, ''Wörterbuch'', ''Dictionary'', ''Map'' (in [[Java]]) oder ''Hash'' (in [[Perl]])
Auch bekannt als ''Assoziatives Array, ''Wörterbuch'', ''Dictionary'', ''Map'' (in Java) oder ''Hash'' (in [[Perl]])


== Baum ==
== Baum ==

Version vom 3. April 2024, 16:26 Uhr

Sobald Daten eine komplexere Form annehmen als eine einzelne Variable verarbeiten kann, müssen sie in speziellen Datenstrukturen organisiert werden.

Diese Datenstrukturen unterscheiden sich im Hinblick auf die Zugriffsmöglichkeiten, die sie auf die Daten bieten, sowie auf die Zeit, die dafür nötig ist.

🕳
Lückenhaft

In diesem Artikel oder Abschnitt fehlen noch folgende wichtige Informationen:

Alle Datenstrukturen müssen noch detaillierter beschrieben werden.

Hilf dem KGS-Wiki, indem du sie recherchierst und einfügst.

Array

Siehe auch Array

Ein Array, in der deutschsprachigen Literatur auch Feld genannt, ist eine der einfachsten Datenstrukturen. Ursprünglich ist ein Array eine Reihe von hintereinander liegenden Speicherzellen. Bei der Erstellung des Arrays wird ein Block an Speicherzellen mit einer festen Größe reserviert. Deswegen muss man z.B. in C oder Java immer noch bei der Initialisierung eines Arrays dessen Größe angeben und kann diese nachträglich nicht mehr verändern.

Auf die Werte eines Arrays wird mit einem Index zugegriffen, der typischerweise bei 0 beginnt.

Verkettete Liste

Siehe auch Verkettete Liste

Eine verkettete Liste (engl. linked list) ist eine Datenstruktur, die beliebig viele Elemente in linearer Form speichern kann, d.h. zu jedem Element außer dem letzten existiert genau ein Nachfolger und zu jedem Element außer dem ersten existiert genau ein Vorgänger.

Praktisch an verketteten Listen ist, dass man mit relativ geringem Aufwand mittendrin Elemente löschen oder einfügen kann, ohne dass Lücken entstehen oder potenziell größere Datenmengen verschoben werden müssen. Auch für die Implementierung von Stacks oder Queues sind sie geeeignet.

Nachteilig ist, dass Operationen wie Suchen eine Laufzeit in aufweisen.

Tupel

Siehe auch Tupel

Menge

Siehe auch Menge

Stack

Siehe auch Stack

Auch bekannt als Stapel oder Kellerspeicher

Queue

Siehe auch Warteschlange

Schlüssel-Wert-Paare

Siehe auch Schlüssel-Wert-Datenstruktur

Auch bekannt als Assoziatives Array, Wörterbuch, Dictionary, Map (in Java) oder Hash (in Perl)

Baum

Siehe auch Baum

Heap

Siehe auch Heap

Graph

Siehe auch Graph