keybern
Legacy Member
Code:
#include <iostream>
#include <string>
#include <sstream>
#include <math.h>
using namespace std;
template <class T>
struct element {
T object;
element *volg;
};
template <class T>
class Lijst {
private:
element<T> *top;
public:
Lijst()
{
top = NULL;
}
~Lijst()
{
element<T> *p;
while (top != NULL){
p = top;
top = top->volg;
delete p;
}
}
void voeggesorteerdtoe(T obj)
{
if (top == NULL || top->object > obj) {
element<T> *p = top;
top = new element<T>;
top->object = obj;
top->volg = p;
cout << "vooraan ";
} else {
element<T> *plaats = top;
element<T> *vorige = top;
while (plaats != NULL && plaats->object < obj) {
vorige = plaats;
cout << "* " << plaats->object ;
plaats = plaats->volg;
}
element<T> nieuw;
nieuw.object = obj;
nieuw.volg = plaats;
vorige->volg = &nieuw;
cout << " volgend element " << endl;
}
cout << obj << " toegevoegd!" << endl;
}
friend ostream& operator<<(ostream& os, const Lijst& l)
{
element<T> *t = l.top;
while (t != NULL){
os << t->object << endl;
t = t->volg;
}
return os;
}
};
int main() {
Lijst<int> l1;
l1.voeggesorteerdtoe(5); l1.voeggesorteerdtoe(3); l1.voeggesorteerdtoe(1); l1.voeggesorteerdtoe(10);
l1.voeggesorteerdtoe(0); l1.voeggesorteerdtoe(4);
cout << l1 << endl;
system("PAUSE");
return 0;
}
mijn bedoeling is wel duidelijk denk ik. Ik heb een linked list en wil deze gesorteerd houden. Vooraan toevoegen lijkt te lukken, maar het programma spuwt vreemde resultaten van zodra er een element tussenin of achteraan moet bijgevoegd worden...
Ik heb werkelijk geen idee waar de fout ligt. Alle hulp is welkom

thx


