链表时一个空表,或是一个指向节点的链接,且这个节点包含一个元素和一个指向链表的链接
0、准备工作
#include <stdlib.h>
typedef int Item;
typedef struct Node Node;
typedef struct Node *List;
struct Node
{
Item data;
List next;
};
Node* NewNode(int data)
{
Node *pNode = (Node*)malloc(sizeof(Node));
if(NULL != pNode)
{
pNode->data = data;
pNode->next = NULL;
}
return pNode;
}
1、创建、销毁链表
// 逆序创建链表
Node* AddFront(List list, Node *pNode)
{
if(NULL != pNode)
{
pNode->next = list;
}
return pNode;
}
// 双指针销毁链表
void DestroyList(List list)
{
Node *iter = list;
while(NULL != iter)
{
list = iter->next;
free(iter);
iter = list;
}
}
2、插入、删除节点
// 在某个节点之后插入一个节点