一、链表
1、链表和线性表的关系:链表是线性表的链式存储结构。
2、链表给每块数据单独的存储空间,即存储空间地址可不连续。
3、结点类型
struct node{
datatype data;
struct node *next;
};
二、单向链表
1、头结点不存储数据,且为空。
2、引入头结点的原因:在表头插入、表尾插入或者表中间插入都一样,让操作统一、简化。
三、用C语言实现单向链表
1、构造存储结构
typedef int datatype;
typedef struct linklist
{
datatype data; /* 数据域 */
struct linklist *next; /* 指针域 */
}link_list, *link_plist;
2、初始化
初始化主要的工作:①申请头结点空间;②建立空链表(
head->next=NULL
)
/* 初始化 */
void init_linklist(link_plist *list)
{
*list = (link_plist)malloc(sizeof(link_list));
if(NULL == *list)
{
printf("内存申请失败\n");
perror("malloc"); /* 打印内存申请失败原因 */
exit(1);
}
(*list