掌握结构体,指针后,链表作为两种形式的集合,将C语言的作用发挥到巨大。
链表知识123
链表是线性表,包括两个部分:数据域&指针域
数据域:存储需要保存的数据
指针域:各个节点之间的连接
连续性:链表在逻辑上是连续的,但物理上未必连续
链表主要有单向链表,双向链表,循环链表
链表操作:对于链表的操作一般包括增加,删除,修改,查找
下面对单向链表进行举例操作:
操作环境:keil v4,串口软件,有硬件支持
构建结构体:
typedef struct list {
int id; //元素id,方便数据查找
char data[20]; //数据域
struct list *next; //指向下一个链表头指针
}LIST;
//定义全局变量,实现每个元素的id不同
static LIST *list_head = NULL;
//定义链表头结点:
static int list_id = 0;
/*
*功能:增加链表元素
*输入:**head -> 链表头
* list -> 增加的链表
*输出:无
**/
static void List_Add(LIST **head, LIST *list)
{
LIST *temp; //临时变量,指向*head
if(NULL == *head) //如果链表头为空,则将list保存到list_head
{
*head = list;
(*head)->next = NULL;
}
else
{
temp = *head; //temp保存*head
while(temp) //轮询
{
if(NULL == temp->next) //尾插
{
temp->next = list;