链表重要性
在Linux内核里,大量使用了链表操作,list_head
设备管理、驱动管理、内存管理、等待队列、中断资源
·list_head使用
typedef struct msg_pack{
char msg_type;
char text[27];
}link_datatype;
typedef struct _node_{
link_datatype data;
struct _node_ *next;
}linknode,*linklist;
一、链表操作
1、创建链表
linklist envlinkHead,envlinkTail;
linklist CreatEmpatyLinklist()
{
linklisk h;
h = (linklist)malloc(sizeof(linknode));
h->next = NULL;
envlinkTail = h;
return h;
}
envlinkHead = CreatEmpatyLinklist();
2、插入节点
int InsertLinknode(link_datatype x)
{
linklist q = (linknode *)malloc(sizeof(linknode));
if(NULL==q)
{
printf("insert node error!");
return -1;
}
envlinkTail->next = q;
envlinkTail = q;
q->data