struct sinhvien
{
int maduan;
char tenduan[20];
char diadiem[30];
float tongtien;
};
sinhvien là một kiểu dữ liệu nó giống như là int, char, float ,… chỉ khác là nó đa năng hơn có thể chứa nhiều kiểu dữ liệu khác nhau giống như 1 cái box chứa bánh, kẹo,…
struct NODE
{
sinhvien info; //khai báo biến info có kiểu dữ liệu là sinhvien
NODE *next; //khai báo biến con trỏ next trỏ tới kiểu dữ liệu NODE
};
NODE cũng tương tự như sinhvien

struct LIST
{
NODE *dau; //khai báo con trỏ có tên là dau trỏ tới kiểu dữ kiệu Node
NODE *cuoi; // khai báo con trỏ có tên là cuoi trỏ tới kiểu dữ kiệu Node
};

NODE *GETNOT(sinhvien x)
{
NODE *p; //khai báo biến con trỏ p trỏ tới kiểu dữ liệu Node
p=new NODE;//cấp phát cho p 1 vùng nhớ
p->info=x; //gán giá trị 1 biến thành phần(info) của p là x
p->next=NULL; //gán giá trị biến thành phần(next) của p trỏ tới NULL
//xem lại cấu trúc của 1 Node để hiểu rõ câu lệnh ở trên
return p; //trả về 1 biến con trỏ có kiểu dữ liệu là Node
}

void nhap(LIST &l) //tham số là 1 biến l có kiểu dữ liệu là LIST
{
l.dau=l.cuoi=NULL; //cho biến thành phần (dau, cuoi) của biến l = NULL
//xem lại cấu trúc của 1 LIST để hiểu rõ câu lệnh trên
}

TÓM LẠI:
-
Để hiểu link list thì bạn phải hiểu rõ cách truy cập các thành phần của biến bình thường kiểu struct, biến con trỏ kiểu struct (goolge)
-
Phải biết debug để xem chương trình chạy từng bước và kết quả ra như thế nào