<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Problem bei eigener LinkedList]]></title><description><![CDATA[<p>Hallo Gemeinde hier erstmal die Klasse vereinfacht</p>
<p>.h</p>
<pre><code class="language-cpp">template&lt;class T&gt;
class LinkedList
{

    private:
        struct Item
        {
            T data;
            Item* next;
        };

        Item* first;
        Item* last;
        unsigned long m_length;   

    public:

        LinkedList();
        ~LinkedList();

        void pushfront(T&amp; newdata);
        void popfront();
        T operator[](int index);
        void setlength();
        int size();
        void sort_list();//Bei dieser Methode habe ich Probleme
}
</code></pre>
<p>hier einmal die funktion, abgesehen davon das sie so wie sie jetzt ist noch nicht funktionsfähig ist, wollte ich fragen, ob es hier logisch ist wenn ich die methode sort_list() statisch mache um sie auf die ganze klasse anzuwenden und nicht auf ein Objekt. Fals ich bei dieser Überlegung falsch liege bitte korrigiert mich und schlagt mir einen ordentlicheren Weg vor.</p>
<pre><code class="language-cpp">template&lt;class T&gt;
void LinkedList&lt;T&gt;::sort_list()
{
    Item* temp = this-&gt;first;
    int swapped;
    T tempdata;

do
{
    swapped = 0;

   while(temp-&gt;next != NULL)
   {
        if(temp-&gt;data &gt; temp-&gt;next-&gt;data)
        {
            tempdata = temp-&gt;data;
            temp-&gt;data = temp-&gt;next-&gt;data;
            temp-&gt;next-&gt;data = tempdata;
            swapped = 1;

        }
        temp = temp-&gt;next;
        this-&gt;first = temp;
    }

    } while(swapped);

}
</code></pre>
<p>Ich hoffe es ist so einigermaßen klar gewurden.</p>
<p>Ich freue mich auf euere Kommentare.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/220133/problem-bei-eigener-linkedlist</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 07:59:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/220133.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 12 Aug 2008 10:45:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 10:57:37 GMT]]></title><description><![CDATA[<p>Hallo Gemeinde hier erstmal die Klasse vereinfacht</p>
<p>.h</p>
<pre><code class="language-cpp">template&lt;class T&gt;
class LinkedList
{

    private:
        struct Item
        {
            T data;
            Item* next;
        };

        Item* first;
        Item* last;
        unsigned long m_length;   

    public:

        LinkedList();
        ~LinkedList();

        void pushfront(T&amp; newdata);
        void popfront();
        T operator[](int index);
        void setlength();
        int size();
        void sort_list();//Bei dieser Methode habe ich Probleme
}
</code></pre>
<p>hier einmal die funktion, abgesehen davon das sie so wie sie jetzt ist noch nicht funktionsfähig ist, wollte ich fragen, ob es hier logisch ist wenn ich die methode sort_list() statisch mache um sie auf die ganze klasse anzuwenden und nicht auf ein Objekt. Fals ich bei dieser Überlegung falsch liege bitte korrigiert mich und schlagt mir einen ordentlicheren Weg vor.</p>
<pre><code class="language-cpp">template&lt;class T&gt;
void LinkedList&lt;T&gt;::sort_list()
{
    Item* temp = this-&gt;first;
    int swapped;
    T tempdata;

do
{
    swapped = 0;

   while(temp-&gt;next != NULL)
   {
        if(temp-&gt;data &gt; temp-&gt;next-&gt;data)
        {
            tempdata = temp-&gt;data;
            temp-&gt;data = temp-&gt;next-&gt;data;
            temp-&gt;next-&gt;data = tempdata;
            swapped = 1;

        }
        temp = temp-&gt;next;
        this-&gt;first = temp;
    }

    } while(swapped);

}
</code></pre>
<p>Ich hoffe es ist so einigermaßen klar gewurden.</p>
<p>Ich freue mich auf euere Kommentare.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563219</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Tue, 12 Aug 2008 10:57:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 11:24:54 GMT]]></title><description><![CDATA[<blockquote>
<p>ob es hier logisch ist wenn ich die methode sort_list() statisch mache um sie auf die ganze klasse anzuwenden und nicht auf ein Objekt</p>
</blockquote>
<p>Also das macht für mich überhaupt keinen Sinn.</p>
<p>Schlussendlich werden ja immer Objekte sortiert und keine Klassen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Nach deiner ersten Aussage, wie ich sie verstehe, willst du sort_list static deklarieren und dann ALLE Objekte vom Typ LinkedList sortieren?! - Das macht für mich ebenso wenig Sinn.<br />
sort_list soll einfach das Objekt, für dass die Funktion aufgerufen worden ist sortieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563259</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 12 Aug 2008 11:24:54 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 11:27:22 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18422">@drakon</a>...</p>
<p>Logisch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Daran habe ich gar nicht gedacht. Natürlich ist es richtig das ich nur das Objekt sortieren will. Aber kannst du mir eventuell noch auf die Sprünge helfen was an meiner sortierfunktion falsch ist? Weil sie will nicht so sortieren wie sie soll, eigentlich sortiert sie gar nicht?! Und es der Ansatz mit dem Tempobjekt in meiner Funktion richtig, ich glaube das habe ich eher falsch gemacht, weil ich will ja das originalobjekt haben, stimmts?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563261</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Tue, 12 Aug 2008 11:27:22 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 11:30:33 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18422">@drakon</a>...</p>
<p>Logisch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Daran habe ich gar nicht gedacht. Natürlich ist es richtig das ich nur das Objekt sortieren will. Aber kannst du mir eventuell noch auf die Sprünge helfen was an meiner sortierfunktion falsch ist? Weil sie will nicht so sortieren wie sie soll, eigentlich sortiert sie gar nicht?! Und es der Ansatz mit dem Tempobjekt in meiner Funktion richtig, ich glaube das habe ich eher falsch gemacht, weil ich will ja das originalobjekt haben, stimmts?</p>
</blockquote>
<p>Schau dir mal gängige Sortieralgorithmen an.</p>
<p>Ist sehr praktisch dabei:<br />
<a href="http://www.site.uottawa.ca/~stan/csi2514/applets/sort/sort.html" rel="nofollow">http://www.site.uottawa.ca/~stan/csi2514/applets/sort/sort.html</a></p>
<p>Kannst auch mal schauen, wie es die Standardbibliothek macht. std::sort z.B.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563264</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 12 Aug 2008 11:30:33 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 11:32:12 GMT]]></title><description><![CDATA[<p>bei deinem Link bekomme ich ein Fehler &quot; Fehler beim Laden des Java-Applets&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563266</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Tue, 12 Aug 2008 11:32:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 11:40:15 GMT]]></title><description><![CDATA[<p><a href="http://de.wikipedia.org/wiki/Kategorie:Sortieralgorithmus" rel="nofollow">http://de.wikipedia.org/wiki/Kategorie:Sortieralgorithmus</a></p>
<p>Du hast am ehesten sowas, wie den Bubble Sort.</p>
<p>Die Standardbibliothek (MSVC) nutzt afaik Quicksort.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563272</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 12 Aug 2008 11:40:15 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 13:33:44 GMT]]></title><description><![CDATA[<p>Ich komm einfach beim Sortieren zu keinem ergebnis könnte mir eventuell jemand einen Tip geben was ich falsch mache, hier nochmal der aktuelle Code</p>
<pre><code class="language-cpp">template&lt;class T&gt;
void LinkedList&lt;T&gt;::sort_list()
{
    Item* temp = this-&gt;first;
    T tempdata;
    int swapp ;

do
{
    swapp = 0;
   while(temp-&gt;next != NULL)
   {
        if(temp-&gt;data &gt; temp-&gt;next-&gt;data)
        {
            tempdata = temp-&gt;data;
            temp-&gt;data = temp-&gt;next-&gt;data;
            temp-&gt;next-&gt;data = tempdata;
            swapp = 1;
        }

        temp = temp-&gt;next;
    }

}while(swapp);

    this-&gt;first = temp;
}
</code></pre>
<p>Danke im Voraus</p>
<p>EDIT:Fehler: Segmentation Fault</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563359</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Tue, 12 Aug 2008 13:33:44 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 13:36:28 GMT]]></title><description><![CDATA[<p>Hi,<br />
wenn ich das richtig sehe gehst du hin und kopierst data von einem Element in das nächste, in der Regel werden beim Sortieren eher die Elementreferenzen getauscht, also das gesamte &quot;Element-Objekt&quot; wird einfach umgehängt (Die next und previous Zeiger verbiegen).</p>
<p>Nach welchem Sortierverfahren willst du eig. sortieren?</p>
<p>Gruß Andy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563366</guid><dc:creator><![CDATA[Andy2211]]></dc:creator><pubDate>Tue, 12 Aug 2008 13:36:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 13:41:08 GMT]]></title><description><![CDATA[<p>Kommando zurück ich habe gerade gemerkt der Fehler liegt nicht an meinem sortieralgo sondern er liegt an der Ausgabe die nach dem Algo kommt. Ich habe auch einen eigenen [] operator definiert und anscheint fliegt dort diese Exception bei der erneuten Ausgabe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Jetzt muss ich mal da gucken, trotzdem großes Dankeschön.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563377</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Tue, 12 Aug 2008 13:41:08 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 13:43:24 GMT]]></title><description><![CDATA[<p>Vieleicht sollte ich doch mal den selbstgeschriebenen Operator zeigen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<pre><code class="language-cpp">template&lt;class T&gt;
T LinkedList&lt;T&gt;::operator[](int index)
{
    Item* temp = this-&gt;first;

    if(temp == NULL || index &gt;=this-&gt;m_length)
    {
        return NULL;
    }
    for(int i = 0;i&lt;index;i++)
    {
        temp = temp-&gt;next;
    }

    return temp-&gt;data;
}
</code></pre>
<p>Habe ich da was falsch gemacht? Anscheind oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563380</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Tue, 12 Aug 2008 13:43:24 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 13:49:12 GMT]]></title><description><![CDATA[<p>Ich denke der Fehler liegt doch im Sortieralgorithmus (nichtmal dort, sondern in der Nacharbeit nach dem Algo) - am Ende setzt Du &quot;first&quot; auf &quot;temp&quot;. &quot;temp&quot; würde aber zu dem Zeitpunkt das letzte Element sein, da Du &quot;temp&quot; in der Schleife zum Iterieren benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563382</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 12 Aug 2008 13:49:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 13:50:38 GMT]]></title><description><![CDATA[<p>Hi,<br />
also wenn in m_length die größe drin steht z.B. 5 Einträge dann sollte es eher heißen &gt; m_length, da von 0 ab gezählt wird.</p>
<p>Ansonsten gibt man in der Regel eher eine Referenz zurück als das Objekt selbst.</p>
<p>Kann es wirklich das Problem sein, dass temp das letzte Element ist\wäre?<br />
Das letzte Element zeigt ja wieder auf das Erste in der Linked List.</p>
<p>Gruß Andy</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563384</guid><dc:creator><![CDATA[Andy2211]]></dc:creator><pubDate>Tue, 12 Aug 2008 13:50:38 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 13:49:58 GMT]]></title><description><![CDATA[<p>d.h. ich muss das element vor temp nehmen? stimmts? Komischer weiße kommt der Fehler aber nicht wenn ich die Ausgabe nach meinem sortieren auskomentiere. Ist die Ausgabe drinne dann kommt der Fehler wieder.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563385</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Tue, 12 Aug 2008 13:49:58 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 13:56:19 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<p>d.h. ich muss das element vor temp nehmen? stimmts?</p>
</blockquote>
<p>Wie wär's mit dem <strong>ersten</strong> Element der Liste? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<blockquote>
<p>Komischer weiße kommt der Fehler aber nicht wenn ich die Ausgabe nach meinem sortieren auskomentiere. Ist die Ausgabe drinne dann kommt der Fehler wieder.</p>
</blockquote>
<p>Ja, weil Du (nach meiner Ansicht) eine Liste durchliest, die viel kürzer ist als m_length. Nehmen wir an, die Liste ist 10 Elemente lang. First zeigt auf das erste.</p>
<p>Nach dem Sortierdurchlauf ist m_length immernoch 10 und first zeigt auf das letzte Element. Im operator[] versuchst Du nun z.B. das fünfte Element anzusprechen. Da 5 &lt; m_length, versucht er, vom letzten Element aus fünf Elemente weiter zu zählen (ohne dabei zu prüfen ob next != 0). Ahnst Du was dabei passiert?</p>
<p>Andy2211 schrieb:</p>
<blockquote>
<p>Kann es wirklich das Problem sein, dass temp das letzte Element ist\wäre?<br />
Das letzte Element zeigt ja wieder auf das Erste in der Linked List.</p>
</blockquote>
<p>Mag sein dass ich das übersehen habe, aber tut es das? In welcher hier geposteten Füllroutine oder Erläuterung wurde das festgelegt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563393</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 12 Aug 2008 13:56:19 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Tue, 12 Aug 2008 13:59:04 GMT]]></title><description><![CDATA[<p>ein</p>
<pre><code class="language-cpp">temp = this-&gt;first;
</code></pre>
<p>in dem sortieralgo hat es wirklich behoben. Super Lord du hast mir mal wieder Prima geholfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Das hat erstmal alle Probleme behoben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563398</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Tue, 12 Aug 2008 13:59:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Wed, 13 Aug 2008 08:07:00 GMT]]></title><description><![CDATA[<p>Ja ich nochmal,</p>
<p>ich habe nochmal ein Problem und zwar beim löschen eines beliebigen Elementes.<br />
Meine löschen Routine beruht auf der Rückgabe einer vorher angewendeten find_at() routine. Diese Routine gibt auch die richtige Position des gesuchten Elements zurück.</p>
<p>Nur hängt sich meine Löschen routine leider manchmal auf. Ich wollte euch mal fragen wo der Logikfehler in meiner Routine ist.</p>
<pre><code class="language-cpp">template&lt;class T&gt;
bool LinkedList&lt;T&gt;::delete_item(int index)
{
    Item* temp = this-&gt;first;
    if(index == -1)
    {
        return false;
    }
    else
    {
        m_length--;
        for(int i = 0;i&lt;index-1;i++)
        {
            temp = temp-&gt;next;
        }
        this-&gt;first = temp-&gt;next;

        delete temp;
        return true;
    }
}
</code></pre>
<p>Der Index ist die Position die die find_at() Methode zurückgibt.Ich habe das gefühl das ich anscheind die Restliche Liste nicht wieder Ordnungsgemäß an den Rest ranhänge wenn ich mitten drinne lösche? Über Hilfe wäre ich sehr dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563779</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 13 Aug 2008 08:07:00 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Wed, 13 Aug 2008 08:51:30 GMT]]></title><description><![CDATA[<p>Mal Dir doch mal <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-196894-and-highlight-is-liste+stromberg+werner.html" rel="nofollow">Listen-Bildchen, so wie in diesem Thread</a>. Dann siehst Du schnell wo Dein Fehler ist.<br />
Ansonsten ginge es so:</p>
<pre><code class="language-cpp">template&lt;class T&gt;
bool LinkedList&lt;T&gt;::erase( int index )
{
    if( index &lt; 0 )
        return false;
    assert( index &lt; m_length );

    Item* pToDel;
    if( index == 0 )
    {   // Sonderbehandlung für das Löschen des 1.Elements
        pToDel = first;
        first = pToDel-&gt;next;
    }
    else
    {
        Item* prev = first;
        for( int i = 1; i &lt; index; ++i )
            prev = prev-&gt;next;
        pToDel = prev-&gt;next;    // prev zeigt auf den Vorgänger
        prev-&gt;next = pToDel-&gt;next;
    }
    delete pToDel;
    --m_length;
    return true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1563802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563802</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Wed, 13 Aug 2008 08:51:30 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Wed, 13 Aug 2008 09:07:32 GMT]]></title><description><![CDATA[<p>Danke Werner, aber duch diesen Codeabschnitt:</p>
<pre><code class="language-cpp">pToDel = prev-&gt;next;    // prev zeigt auf den Vorgänger
prev-&gt;next = pToDel-&gt;next;
</code></pre>
<p>Steige ich nicht so richtig durch, was machst du da genau? Speichertechnisch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563813</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 13 Aug 2008 09:07:32 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Wed, 13 Aug 2008 09:45:57 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<p>Danke Werner, aber duch diesen Codeabschnitt:</p>
<pre><code class="language-cpp">pToDel = prev-&gt;next;    // prev zeigt auf den Vorgänger
prev-&gt;next = pToDel-&gt;next;
</code></pre>
<p>Steige ich nicht so richtig durch, was machst du da genau? Speichertechnisch?</p>
</blockquote>
<p>nach der ersten Zeile hat man folgende Situation:</p>
<pre><code>prev           pToDel
    |              |
    v              v
 +-------+   +-&gt;+-------+   +-&gt;+-------+
 |  x0   |   |  |  x1   |   |  |  x    |
 | next------+  | next------+  | next----&gt;...
 +-------+      +-------+      +-------+
                  ^
                 index (zu löschen)
</code></pre>
<p>und nach der zweiten Zeile:</p>
<pre><code>+-----------------+
             |                 |
   prev      |    pToDel       |
    |        |     |           |
    v        |     v           v
 +-------+   |  +-------+   +-&gt;+-------+
 |  x0   |   |  |  x1   |   |  |  x    |
 | next------+  | next------+  | next----&gt;...
 +-------+      +-------+      +-------+
                  ^
                 index (zu löschen)
</code></pre>
<p>.. mal selber; das übt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563841</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563841</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Wed, 13 Aug 2008 09:45:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Wed, 13 Aug 2008 09:49:02 GMT]]></title><description><![CDATA[<p>Ahhh cool danke. Ich denke ich habe es jetzt so langsam geschnitten. Muss ja haufen malarbeit gewesen sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> Danke nochmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563846</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 13 Aug 2008 09:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Wed, 13 Aug 2008 11:06:35 GMT]]></title><description><![CDATA[<p>Mal so eine Frage nebenbei? Wie müsste denn bei der Klasse der Copyctor aussehen?? Kann ich da eventuell meinen [] operator nutzen oder muss ich da was beachten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563903</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 13 Aug 2008 11:06:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Wed, 13 Aug 2008 11:46:03 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<p>Wie müsste denn bei der Klasse der Copyctor aussehen?? Kann ich da eventuell meinen [] operator nutzen oder muss ich da was beachten?</p>
</blockquote>
<p>So weit ich das gesehen und Dein Konzept verstanden habe, läufst Du in dem operator[] in einer Schleife vom Anfang (first) bis zu i'ten Element.<br />
Wenn Du nun den operator[] im Copy-Konstruktor einsetzt, so wurde Du bei 2 Elementen 3 mal durch diese Schleife im operator[] laufen. Bei 10 Elementen wären es 55 und bei 100 Elementen bereits über 5000 Durchläufe. Mit anderen Worten - Dein Copy-Konstruktor hätte die Komplexität O(n^2).</p>
<p>Das sollte man vermeiden. Also implementiere lieber eine Schleife mit 'Item* p; p = p-&gt; next ..'.</p>
<p>Noch ein Tipp: Implemntiere auch eine swap-Methode für die LinkedList (das sollte trivial sein) und nutze im Zuweisungs-operator den Kopie-und-Swap-Trick.</p>
<pre><code class="language-cpp">LinkedList&amp; LinkedList::operator=( const LinkedList&amp; other )
{
  LinkedList temp(other);
  LinkedList::swap(temp);
  return *this;
}
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563942</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Wed, 13 Aug 2008 11:46:03 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Wed, 13 Aug 2008 11:53:47 GMT]]></title><description><![CDATA[<blockquote>
<p>Das sollte man vermeiden. Also implementiere lieber eine Schleife mit 'Item* p; p = p-&gt; next ..'.</p>
</blockquote>
<p>wie meinst du das? Wie kann ich denn eine solche Schleife gestalten irgendwie muss ich ja mit dem Index arbeiten oder sehe ich das gerade falsch?<br />
Aber die restlichen Tips waren sehr gut danke. wobei ich mir noch nicht 100% schlüssig bin wie ich die swap gestalten sollte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563955</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 13 Aug 2008 11:53:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Wed, 13 Aug 2008 12:03:51 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<blockquote>
<p>Das sollte man vermeiden. Also implementiere lieber eine Schleife mit 'Item* p; p = p-&gt; next ..'.</p>
</blockquote>
<p>wie meinst du das? Wie kann ich denn eine solche Schleife gestalten irgendwie muss ich ja mit dem Index arbeiten oder sehe ich das gerade falsch?</p>
</blockquote>
<p>Du hast doch in der operator[]-Funktion eine Schleife, die vom ersten zum i'ten Element zählt. So eine Schleife ist gemeint, nur vom ersten bis zum letzten Element (Analogieübung: Ersetze i durch m_length-1 :D).</p>
<p>Zum Swap: Wenn Du den Inhalt zweier Listen tauschen möchtest, musst Du die Daten, die diese Liste verwaltet, tauschen. Die Daten innerhalb der Liste liegen als Zeiger auf das erste Element vor, also kann diese Tauschoperation sehr günstig erreicht werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1563962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1563962</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 13 Aug 2008 12:03:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Wed, 13 Aug 2008 12:40:26 GMT]]></title><description><![CDATA[<blockquote>
<p>Du hast doch in der operator[]-Funktion eine Schleife, die vom ersten zum i'ten Element zählt. So eine Schleife ist gemeint, nur vom ersten bis zum letzten Element (Analogieübung: Ersetze i durch m_length-1 :D).</p>
</blockquote>
<p>Wenn ich das doch so mache, dann laufe ich ja jedesmal bis zum Ende durch und gebe das Letzte Element zurück? Stehe ich gerade aufem Schlauch?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564011</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 13 Aug 2008 12:40:26 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei eigener LinkedList on Wed, 13 Aug 2008 13:11:52 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<p>Wenn ich das doch so mache, dann laufe ich ja jedesmal bis zum Ende durch und gebe das Letzte Element zurück? Stehe ich gerade aufem Schlauch?!</p>
</blockquote>
<p>Vielleicht: Ein Konstruktor gibt nichts zurück. Wir reden doch vom Copy-Konstruktor, oder?</p>
<p>EDIT:<br />
Nochmal langsam: Du möchtest in einem Copy-Konstruktor an die einzelnen Elemente. Dein Vorschlag war, über den op[] an diese Elemente heranzugehen. Der Einwand war, dass das zu langsam sein könnte, weil dann für jedes Element von Anfang bis zum Element durchgezählt wird. Der Alternativvorschlag war, statt op[] eine Schleife zu verwenden, die <strong>wie die in op[] aufgebaut ist</strong>. Du solltest nicht op[] verändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564036</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 13 Aug 2008 13:11:52 GMT</pubDate></item></channel></rss>