000
02.04.2014, 12:59 Uhr
~Sarah
Gast
|
Hallo an die Forumsmitglieder,
ich habe eine einfachverkettete Liste geschrieben. Das Programm funktioniert einwandfrei. Ich würde mich nur gern nochmal erkundigen, ob ich alles richtig gemacht habe bzw. ob man es anders machen sollte. Es geht mir nur um das Prinzip. Ich habe ein einfaches Programm geschireben, mit einer Klasse, in der nur ein Konstruktor, Destruktor, eine Einfügefunktion und ein Outputstream enthalten sind. In der Klasse existieren 2 Zeiger. Einer zeigt auf das aktuelle Element, das andere auf das Folgende. So zumindest habe ich das Prinzip mit der einfachverketteten Liste verstanden.
Wäre toll, wenn ihr mir ein Feedback geben könntet zu dem Programm:
C++: |
#include <iostream>
using namespace std;
class Einfachliste{
private: string vname; string nname;
Einfachliste* beginn; Einfachliste* naechste;
public: void neuername(const char*, const char*); Einfachliste(); ~Einfachliste(); friend ostream& operator<<(ostream& os, const Einfachliste&);
};
Einfachliste::Einfachliste(){
this->beginn = NULL; this->naechste = NULL; this->vname = "Eintrag"; this->nname = "Eintrag";
}
Einfachliste::~Einfachliste(){}
void Einfachliste::neuername(const char* vname, const char* nname){
Einfachliste* eintrag; eintrag = new Einfachliste;
eintrag->vname = vname; eintrag->nname = nname;
eintrag->naechste = beginn; this->beginn = eintrag;
}
ostream& operator<<(ostream& os, const Einfachliste& person) {
Einfachliste* out; out = new Einfachliste; out = person.beginn;
while(out!=0) { os<<"VName: "<<out->vname<<", NName: "<<out->nname<<endl; out = out->naechste; }
return os;
}
int main(){
Einfachliste personenregister;
const char* vnameper = "Albert"; const char* nnameper = "Schroeder";
for(int i = 0; i<5; i++){ personenregister.neuername(vnameper, nnameper); }
cout<<"Die Personenliste"<<endl; cout<<personenregister<<endl;
return 0; }
|
|