Listen
-
Hallo
ich versuche eine Verketete Liste zu erstellen, leider stelle ich mich zu blöd an kann jemand helfen?Hier mein ansatz:
#include <iostream>
using namespace std;
class
Daten
{
public:
int m_Zahl;
Daten *m_pNext;
};class Liste
{
Daten *m_pAnfang;
int m_Wert;public:
Liste()
{
m_pAnfang = 0;
};void dazu()
{
Daten *m_pNeudat = new Daten;
cout <<"Eine Zahl eingeben :";
cin >>m_Wert;
m_pNeudat->m_Zahl = m_Wert;
m_pNeudat->m_pNext = m_pAnfang;
m_pAnfang = m_pNeudat;
};void ausgabe()
{do
{
cout <<m_pAnfang->m_Zahl;
m_pAnfang = m_pAnfang->m_pNext;
}while (m_pAnfang->m_pNext !=0);
};};
int main()
{
char ein;
int m_pWert;
Liste l1;do
{
cout <<"Eingabe <e> Ausgabe <a> Ende <x>";
cin >>ein;switch (ein)
{
case 'e':
l1.dazu();
break;case 'a':
l1.ausgabe();
break;
}}while (ein != 'x');
return (0);
}
-
Eine Beschreibung des Fehlers wäre hilfreich gewesen. Aber auch so würde ich sagen, dass es nicht so eine gute Idee ist, beim Ausgeben ausgerechnet mit dem Anfangszeiger durch die Liste zu laufen. Eventuell braucht man den ja später nochmal.
-
Hallo
das problem besteht darin wenn ich mehrere Werte eingebe wird immer nur der letzte angezeigt. Also ich kann keine richtige liste erzeugen.
-
Du "mischt" die Funktionalität. Die daten enthalten die Nutzdaten und die Liste verwaltetdie Nutzdaten. Bei dir enthält Daten jedoch den Zeiget auf die "nächsten" Daten. Das ist keine gute Idee.