C语言链表基本操作

来源:互联网 发布:海通期货交易软件 编辑:程序博客网 时间:2024/05/09 04:51

链表时一个空表,或是一个指向节点的链接,且这个节点包含一个元素和一个指向链表的链接

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、插入、删除节点

// 在某个节点之后插入一个节点void InsertNode(Node *pNode, Node *pNewNode){    if(NULL != pNode)    {        pNewNode->next = pNode->next;        pNode->next = pNewNode;    }}// 删除某个节点之后的节点void DeleteNode(Node *pNode){    if(NULL != pNode && NULL != pNode->next)    {        Node *t = pNode->next;        pNode->next = t->next;        free(t);        t = NULL;    }}


 

原创粉丝点击