Hi Leute!
Ich will eine Ringliste in C++ programmieren. Bei einer Ringliste muss ja das letzte Element auf das erste Zeigen. Wie aber mach ich das dann?
Ich hab hier schon mal einiges an Code geschrieben:
Mein Problem ist quasi nun, wie ich in der Methode Append() wissen soll, wann das letzte Element angefügt wird, damit ich den Zeiger des Elements auf das erste Element legen kann... Versteht ihr was ich meine?
Ich will eine Ringliste in C++ programmieren. Bei einer Ringliste muss ja das letzte Element auf das erste Zeigen. Wie aber mach ich das dann?
Ich hab hier schon mal einiges an Code geschrieben:
Code:
#include<iostream>
#include"ringlist.h"
using namespace std;
ringlist::ringlist()
{
head = NULL;
tail = NULL;
}
ringlist::~ringlist()
{
}
void ringlist::Append(int val)
{
element *elem = new element;
elem->val = val;
elem->next = NULL;
if(tail == NULL)
{
head = elem;
tail = elem;
}
else
{
tail->next = elem;
tail = elem;
}
}
void ringlist::Print()
{
element *curr = head;
cout << "Ringliste: ";
while(curr != NULL)
{
cout << curr->val << " ";
curr = curr->next;
}
cout << endl;
}
Code:
#ifndef RINGLIST__H
#define RINGLIST__H
#include"element.h"
class ringlist
{
private:
element *head;
element *tail;
public:
ringlist();
~ringlist();
void Append(int value);
void Print();
};
#endif
Code:
#ifndef ELEMENT__H
#define ELEMENT__H
class element
{
public:
int val;
element *next;
};
#endif
Mein Problem ist quasi nun, wie ich in der Methode Append() wissen soll, wann das letzte Element angefügt wird, damit ich den Zeiger des Elements auf das erste Element legen kann... Versteht ihr was ich meine?
Zuletzt bearbeitet: