线性表分为:
- 顺序表(数组,内存地址连续)
- 链表(存储空间不连续);
一.链表:数据域+指针域
链表的两个结点之间一般通过一个指针来从一个结点指向另外一个结点;
链表
则是由若干个地址可能不连续的结点通过指针连接而成,且最后一个结点的next指针指向NULL,即空地址,表示一条链表的结尾。
链表的类型:单向链表,双向链表以及循环链表。
二.按是否存在头结点分为:
带头结点的链表
不带头结点的链表
头结点一般称为head,且其数据域data不存放任何内容,而指针域next指向第一个数据域有内容的结点(一般把这一个结点叫做第一个结点);
三.使用malloc函数和new运算符为链表结点分配存储空间
1.malloc函数
malloc函数
是C语言中stdlib.h头文件下用于申请动态内存的函数,其返回类型是申请的同变量类型的指针;
//举例
// typename *p = (typename *)malloc(sizeof(typename));
node *p = (node *)malloc(sizeof(node));