02.链表和链节点的实现

1. 链表 -- 简介:

   每个链表节点使用一个adlist.h/listNode 结构表示。

typedel struct listNode {
    struct listNode prev; // 前置节点

    struct listNode next; // 后置节点

    void value;   // 节点的值

}listNode

  多个 listNode 可以通过 prev 和 next 组成双端链表:


linkNode.png

虽然仅仅使用多个 listNode 结构可以组成链表,但使用 alist.h/list 来持有链表的话,操作数据会更方便:

typedel struct list {
    listNode head; // 表头节点

    listNode tail; // 表尾节点

    unsigned long  len;   // 链表所包含的节点数量

    void (dup)(void ptr) ; // 节点复制函数

    void (free)(void ptr) ; // 节点值释放函数

    int (match ptr  void key); // 节点值对比函数

}list
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 什么是数组? 数组简单来说就是将所有的数据排成一排存放在系统分配的一个内存块上,通过使用特定元素的索引作为数组的下...
    启明_b56f阅读 4,562评论 0 0
  • 链表 概念 说到链表,coder们都不会陌生,在日常开发中或多或少都会用到它。它是链式存储的线性表,简称链表。链表...
    扈扈哈嘿阅读 6,233评论 0 5
  • tips:本文参照《redis设计与实现》、《数据结构与算法》、redis源码 链表提供了高效的节点重排能力,以及...
    TOUCH_d36e阅读 3,157评论 0 0
  • 一. 认识双向链表 双向链表介绍 单向链表: 我们可以轻松的到达下一个节点, 但是回到钱一个节点是很难的. 但是,...
    小码哥教育520it阅读 15,367评论 0 0
  • 今年的高考,作弊情节严重的要入刑,被称为“史上最严高考”,高考在维护社会公平正义方面,在百姓维护阶层稳定并力争向上...
    方原阅读 1,756评论 0 0

友情链接更多精彩内容