私はしばらくこれに取り組んできましたが、リンクされたリストを正しく反復処理する方法がわかりません。現在、プログラムを実行できますが、リンクされたリストから結果が得られません。これは私のコードです。これまでのところ、何が起こるべきかです。
これが私の結果です。しかし、これもすぐにクラッシュします
#ifndef LList_h
#define LList_h
#include <iostream>
#include "node.h"
class LList
{
public:
LList(void); //constructor
LList(const LList &); //copy constructor
~LList(); //destructor
LList *next; //points to next node
void push_back(const string &str);
void push_front(const string &str);
friend ostream& operator<<(ostream& out, const LList& llist);
LList &operator=(const LList &l);
private:
Node *_head;
Node *_tail;
string _str;
};
inline LList::LList(void) {
cerr << "head = tail = 0 at 0024f8d0\n";
_head = 0;
_tail = 0;
}
inline void LList::push_back(const string &_str) {
Node *p = new Node(_str);
if (_tail == 0) {
_tail = p;
} else {
_tail ->next(p);
_tail = p;
}
}
inline void LList::push_front(const string &_str) {
Node *p = new Node(_str);
if (_head == 0) {
_head = p;
} else {
_head ->next(p);
_head = p;
}
}
ostream &operator <<( ostream &out, const LList & llist ) {
for( LList *p = llist.front; p != 0; p = p -> next )
out << p;
return out;
}
LList & LList::operator=(const LList &l) {
_head = 0;
_tail = 0;
return *this;
}
#endif