Enkel länkad lista om ni inte fattat det Johan skrivit.
(jag har inget bättre för mej på helgerna)
#include <iostream>
using namespace std;
class nod{
public:
//Funktioner
void add_linked_list(nod * lastobj);
void print_list();
//Konstruktor/Destruktor
nod(string namn); //Parametern namn settar namnet på objektet
~nod();
private:
string name; //Namn
nod * next; //Pekar på nästa
};
//Konstruktor
nod::nod(string namn){
name = namn; //Settar namnet
this->next = NULL; //Ha alltid längst ner för att det e så.
}
////////////////////////////////////////////////////
//Destruktor
nod::~nod(){
cout << "Tar bort: " << name;
//Kollar om nästa är Null eller ej.
if (this->next){
//Ta bort objektet
delete this->next;
}else{
//När allt e borta så slutar destruktorn arbeta.
}
}
////////////////////////////////////////////////////
//Addera
void nod::add_linked_list(nod * lastobj){
if(this->next){ //Om nästa är null kör om listan med nästa objekt.
this->next->add_linked_list(lastobj);
}
else{ //Annars addera objekt
this->next = lastobj;
}
cout << "Added : "<< lastobj->name <<endl;
}
////////////////////////////////////////////////////
void nod::print_list(){
if(!this == NULL){ //Om den inte är null, du kan inte köra !this (iaf inte jag) du kan köra this != null men !this==null ser snyggare ut.
cout << name <<endl;
this->next->print_list(); //Gå vidare i listan efter fler objekt att printa ut
}
if(this){ // Annars om den e null, bryt listan.
}
}
////////////////////////////////////////////////////
int main()
{
nod * list = new nod("Kex"); // Skapa objektet
list->add_linked_list(new nod("kaka")); //Addera objekt
cout << "___________"<<endl;
list->print_list(); //Printa listan
cout << "___________"<<endl;
delete list;
return 0;
}