<?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[Element (Node) aus verkettete Liste löschen]]></title><description><![CDATA[<p>So nochmal Hallo <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>
<p>jetzt häng ich hier grad etwas an der verketteten Liste....<br />
das ganze funktioniert soweit ganz gut, also mit anlegen, auslesen, etc..... <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="🙂"
    /><br />
nur jetzt will ich ein Element in der Mitte der Liste löschen.</p>
<p>In Meiner Listenklasse hab ich folgende Methoden</p>
<pre><code class="language-cpp">const Node *begin();
const Node *end();
const Node *getAktuell();
void reset();
void erase();

void next();

void insert(Node *neuesElement){insert(neuesElement, start);}
void insert (Node *neuesElement, Node *&amp;Zeiger);
</code></pre>
<p>Ich hab jetzt versucht der Löschen-Funktion das zu löschende Objekt zu übergeben:</p>
<pre><code class="language-cpp">void erase(Node *eraseThis){
   // Löschenfunktion
}
</code></pre>
<p>Nur hab ich jetzt keine Ahnung wie ich das anstelle. Denn soweit ich weiß kann ich ja in der Liste nicht zurückgehen, oder? Ich meine um das vorherige Element auf das folgende von 'eraseThis' zeigen zu lassen.<br />
Und dann müsste ich ja noch irgendwie den belegten Speicher freigeben....</p>
<p>Wäre super wenn Ihr mir helfen könntet. Danke schon mal!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/260579/element-node-aus-verkettete-liste-löschen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 00:32:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/260579.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 07 Feb 2010 12:45:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Element (Node) aus verkettete Liste löschen on Sun, 07 Feb 2010 12:45:57 GMT]]></title><description><![CDATA[<p>So nochmal Hallo <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>
<p>jetzt häng ich hier grad etwas an der verketteten Liste....<br />
das ganze funktioniert soweit ganz gut, also mit anlegen, auslesen, etc..... <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="🙂"
    /><br />
nur jetzt will ich ein Element in der Mitte der Liste löschen.</p>
<p>In Meiner Listenklasse hab ich folgende Methoden</p>
<pre><code class="language-cpp">const Node *begin();
const Node *end();
const Node *getAktuell();
void reset();
void erase();

void next();

void insert(Node *neuesElement){insert(neuesElement, start);}
void insert (Node *neuesElement, Node *&amp;Zeiger);
</code></pre>
<p>Ich hab jetzt versucht der Löschen-Funktion das zu löschende Objekt zu übergeben:</p>
<pre><code class="language-cpp">void erase(Node *eraseThis){
   // Löschenfunktion
}
</code></pre>
<p>Nur hab ich jetzt keine Ahnung wie ich das anstelle. Denn soweit ich weiß kann ich ja in der Liste nicht zurückgehen, oder? Ich meine um das vorherige Element auf das folgende von 'eraseThis' zeigen zu lassen.<br />
Und dann müsste ich ja noch irgendwie den belegten Speicher freigeben....</p>
<p>Wäre super wenn Ihr mir helfen könntet. Danke schon mal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851816</guid><dc:creator><![CDATA[Mufasa]]></dc:creator><pubDate>Sun, 07 Feb 2010 12:45:57 GMT</pubDate></item><item><title><![CDATA[Reply to Element (Node) aus verkettete Liste löschen on Sun, 07 Feb 2010 12:55:43 GMT]]></title><description><![CDATA[<p>In einer Doppeltverkettetenliste kannst du auch wieder zurück gehen. Bei einer einfach verketteten, musst du wohl von Anfang an durchgehen und das vorherige Element suchen.</p>
<p>Mit new angeforderten Speicher gibt man mit delete wieder frei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851819</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Sun, 07 Feb 2010 12:55:43 GMT</pubDate></item><item><title><![CDATA[Reply to Element (Node) aus verkettete Liste löschen on Sun, 07 Feb 2010 13:17:33 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<p>In einer Doppeltverkettetenliste kannst du auch wieder zurück gehen. Bei einer einfach verketteten, musst du wohl von Anfang an durchgehen und das vorherige Element suchen.</p>
</blockquote>
<p>Danke für die schnelle Antwort. Eine doppelt verkettete Liste hab ich noch nicht gemacht.<br />
Ich denke mal ich brauche dafür in meiner Node-Klasse noch einen Pointer auf das vorherige Element? Ungefähr so?</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;cassert&gt;
using namespace std;

class Node
{
	friend class Liste;
public:
	Node(string);
	~Node();
private:
	string wort;
        Node *next;
        Node *prev;
};
</code></pre>
<p>aber wie sage ich ihm dann, dass prev auf das vorherige Node zeigt??<br />
Ein neues Node füge ich momentan so ein:</p>
<pre><code class="language-cpp">void Liste::insert(Node *neuesElement, Node *&amp;Zeiger){
   assert (neuesElement != NULL);	// assert = Behauptung!
   if ((Zeiger == NULL) || (neuesElement-&gt;wort &lt; Zeiger-&gt;wort)){	
      neuesElement-&gt;next = Zeiger;
      Zeiger = neuesElement;
      elemente++;
   }
   else insert (neuesElement, Zeiger-&gt;next);
}
</code></pre>
<p>rüdiger schrieb:</p>
<blockquote>
<p>Mit new angeforderten Speicher gibt man mit delete wieder frei.</p>
</blockquote>
<p>Ja delete hatte ich mir schon gedacht.... aber ich wusste nicht was ich dann dahinter schreibe.... würde das so gehen?</p>
<pre><code class="language-cpp">delete neueListe.getAktuell();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1851840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851840</guid><dc:creator><![CDATA[Mufasa]]></dc:creator><pubDate>Sun, 07 Feb 2010 13:17:33 GMT</pubDate></item></channel></rss>