Немного теории...
1. Линейный список
Линейный список представляет собой динамическую структуру, доступ к элементам которой осуществляется через указатель на первый элемент (голову списка). Каждый элемент связанного списка , во-первых, хранит какую-то информацию (данные), во-вторых, указывает на следующий за ним или предыдущий элемент. Для представления списка с помощью указателей вводится тип:
struct Node
{
int data; //информационное поле, данные, любой порядковый тип
Node *next; //указатель на следующий элемент
};
typedef Node * PNode;