<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://update.proggen.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://update.proggen.org/feed.php">
        <title>proggen.org struct:list</title>
        <description></description>
        <link>http://update.proggen.org/</link>
        <image rdf:resource="http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico" />
       <dc:date>2026-04-19T13:48:14+0200</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=struct:list:double-linked&amp;rev=1663868367"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=struct:list:head&amp;rev=1663868367"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=struct:list:owner&amp;rev=1663868367"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=struct:list:single-linked&amp;rev=1663868367"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=struct:list:start&amp;rev=1663868367"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico">
        <title>proggen.org</title>
        <link>http://update.proggen.org/</link>
        <url>http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico</url>
    </image>
    <item rdf:about="http://update.proggen.org/doku.php?id=struct:list:double-linked&amp;rev=1663868367">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:27+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>struct:list:double-linked</title>
        <link>http://update.proggen.org/doku.php?id=struct:list:double-linked&amp;rev=1663868367</link>
        <description>Doppelt verkettete Listen

Bei einem Problem half der Listenkopf jedoch nicht weiter: Zum Entfernen und Hinzufügen von Elementen benötigen wir weiterhin grundsätzlich den Vorgänger, den wir nur mit sehr viel Aufwand wieder herausfinden können.
Eine triviale Lösung ohne mehr Speicherverbrauch gibt es nicht, also bemühen wir eine triviale Lösung, die etwas mehr Speicher verbraucht.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=struct:list:head&amp;rev=1663868367">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:27+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>struct:list:head</title>
        <link>http://update.proggen.org/doku.php?id=struct:list:head&amp;rev=1663868367</link>
        <description>Listenköpfe

Den Aufwand, bei jedem Entfernen auch zu prüfen, ob man den Listenkopf überarbeiten muss, möchte man sich selbstverständlich sparen, zumal die Überprüfung in dieser Form sich im Code häufig wiederholen würde. Code, der sich wiederholt, gehört in eine entsprechende Funktion. Eine Möglichkeit ist DeleteNode zusätzlich die Addresse vom Zeiger auf den Listenkopf zu übergeben:</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=struct:list:owner&amp;rev=1663868367">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:27+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>struct:list:owner</title>
        <link>http://update.proggen.org/doku.php?id=struct:list:owner&amp;rev=1663868367</link>
        <description>Referenz auf den Listenkopf

Beim Entfernen eines Elementes könnten wir zuerst die Liste durchsuchen, ob das Element überhaupt mit dieser Liste verwaltet wird. Das ist allerdings aufwendig. Zum Einfügen müsste weiterhin jede Liste durchsucht werden, bei dem das Element Mitglied sein könnte.
Das kostet massivst Rechenzeit.
Eine Mehrleistung kostet immer Rechenzeit oder Arbeitsspeicher. Im schlimmsten Fall beides.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=struct:list:single-linked&amp;rev=1663868367">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:27+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>struct:list:single-linked</title>
        <link>http://update.proggen.org/doku.php?id=struct:list:single-linked&amp;rev=1663868367</link>
        <description>Einfach verkettete Listen

Die einfachste Form einer Liste ist ein Node, das ein Datenelement enthält und einem Zeiger auf das nachfolgende Element. Besteht ein Datensatz zum Beispiel aus einer Adresse, so kann ein Datensatz zum Beispiel so aussehen:</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=struct:list:start&amp;rev=1663868367">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:27+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>struct:list:start</title>
        <link>http://update.proggen.org/doku.php?id=struct:list:start&amp;rev=1663868367</link>
        <description>Listen

Motivation

Auf Arrays kann man hervorragend sehr schnell zugreifen, da alle Einträge zwischen der 0. und der letzten Position in einem großen, zusammenhängendem Speicherblock aufgereiht liegen: Die Daten liegen im Array (engl. für 'Reihe'). Bei manchen Systemen können diese großen Speicherblöcke zu Problemen führen, weil das Betriebssystem gar nicht so große, zusammenhängende Speicherblöcke liefern kann. Dieser Grund ist bei heutigen PCs und modernen Betriebssystemen nicht mehr so aussc…</description>
    </item>
</rdf:RDF>
