链表是一种数据结构对于要学習数据结构的人学习好链表是非常重要的。
一个链表需要包含什么呢我的理解就是:1、有n个节点离散分配,2、每个节点通过指针来连接3、每个节点都有一个前驱节点和一个后驱节点,4、首节点没有前驱节点尾节点没有后驱节点。
typedef 只是给数据类型取个别名,即 typedef 数据类型 别名;我们知道struct Node 是我们定义的数据类型;
在创建链表之前我们需要需要了解一下專业术语:
首节点:存放第一个有效数据的节点;
尾节点:存放最后一个有效数据的节点;
头节点:头节点的数据类型与首节点的数据类型相同,并且头节点是首节点前面的那个节点并不存放有效数据;头节点的存在只是为了方便链表的操作。
头指针:指向头节点的指针;
尾指针:指向尾节点的指针;
二、在头节点后面插入一个节点
//链表的第pos有效元素前面插入元素val首先我们应该找到第pos个元素前面一个元素的位置;
//当链表有3个元素时,pos=4将不会进行插入操作
//程序执行到这之后,i=pos-1;p指针指向链表第pos个有效节点前驱即指向第pos-1节点;
q=NULL; //如果不清涳,会出现野指针