博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有头结点的双向链表
阅读量:6193 次
发布时间:2019-06-21

本文共 689 字,大约阅读时间需要 2 分钟。

typedef struct node{    struct node*pre;    struct node* next;}NODE;typedef struct{    NODE head;//头结点,一定要有头结点。    NODE* tail;    int nodeNum;}LIST;

//insert p_node after the p_previous node

//没有头结点的情况复杂多了,因为要考虑在头结点前或者后插入,现在只用考虑是不是在最后插入。

//没有头结点的话,连删除第一个节点都很困难,因为要判断头结点是不是为空。总之,没有头结点要考虑两头的事情,很麻烦,有了头结点只需考虑末尾的事情。

void drv_list_node_insert(LIST *pList, LIST_NODE *pPrevious,LIST_NODE* pNode)
{
    LIST_NODE * pNext = pPrevious->next;
    pPrevious->next = pNode;
    if( pNext == NULL)
    {
        pNode->pre = pPrevious;
        pNode->next = NULL;
        pList->tail = pNode;
    }
    else
    {
        pNext->pre = pNode;
        pNode->pre = pPrevious;
        pNode->next = pNext;
    }
    pList->nodeNum--;
}

转载于:https://www.cnblogs.com/elseliving/p/7455340.html

你可能感兴趣的文章
聊天宝彻底凉了,遭罗永浩抛弃,团队就地解散
查看>>
MySQL是如何做容器测试的?
查看>>
移动端解决方案学习记录
查看>>
MyExcel 2.1.3 发布,提供行级读取处理能力
查看>>
算法与数据结构(七) 图论
查看>>
【趣解编程】条件语句if
查看>>
95后博士入职达摩院,14岁上大学,成阿里史上最年轻科学家
查看>>
JPress v2.0-rc.4 发布,修复插件安装卸载的若干问题
查看>>
区块链技术开发 谈谈区块链应用的几大优势
查看>>
C# 设置Excel打印选项及打印excel文档
查看>>
systemd-journald日志持久化的操作方法
查看>>
Linux设备模型 (1)
查看>>
webshell木马简介及防护
查看>>
4.1-4.4 python的数据类型
查看>>
数据库副本的自动种子设定(自增长)
查看>>
Hadoop深入浅出,Hadoop的部署
查看>>
算法学习之路|欧拉回路初见
查看>>
VSFTP服务器学习笔记
查看>>
自己动手做聊天机器人 一-涉及知识【转】
查看>>
常用的一些javascript小技巧
查看>>