معمولا برای تولید لیست پیوندی دو تا کلاس تعریف میکنن، به صورت زیر:
class node{
friend list;
noode *next;
public:
int data;
};
class list{
node *head;
public:
void add(int i);
node *find(list i);
};
ولی من دیدم میشه همین کار رو در یک کلاس انجام داد ولی نوع داده ای که برای هر گره میخواد تعریف بشه، توسط ساختار در همون یک کلاس تعریف شه.
مثلا اینجوری:
class List {
struct Node {
int data;
Node * next;
};
Node * head;
public:
List() {
head = NULL;
}
~List() {
while(head != NULL) {
Node * n = head->next;
delete head;
head = n;
}
}
void add(int value) {
Node * n = new Node;
n->data = value;
n->next = head;
head = n;
}
// ...
};