Ну, многого не нужно.
Вы можете просто определить узел как
struct node
{
int data;
node * next; // Will hold the value of next node's address
};
Теперь вы можете просто создать класс структуры данных с помощью методов.
class LinkedList {
private:
node *head, *current, *temp; // 3 Main pointers
public:
LinkedList() {
head = temp = current = NULL; // Set them to NULL
}
void insert(int data) { // to add a new node
if(head == NULL) { // if there is no node in the memory
head = new node; // use head to make a new node
head->data = data; // set the data of the node to data
head->next = NULL; // set the next to NULL
temp = current = head; // 3 pointers sitting at the head node
}
else { // If the node is not the first one in the memory
current = new node; // use current pointer to make new node
temp->next = current; // temp pointer one step behind the current node
current->next = NULL; // make the next of new node NULL
temp = current; // move the pointer to current
current->data = data;
}
}
};
Эта функция будет просто добавлять узлы при каждом вызове.
Чтобы отобразить список, просто переместите временный указатель на заголовок и запустите итерацию
void display()
{
temp = head; // move to head
while(temp != NULL) // while temp doesn't reach the end
{
cout<<temp->data<< " "; // print the node's data
temp = temp->next; // move the pointer to next node
}
}