深入解析C++的循环链表与双向链表设计的API实现

2020-01-06 14:55:35于海丽


双向链表设计与API实现
为什么需要双向链表?

  • 单链表的结点都只有一个指向下一个结点的指针
  • 单链表的数据元素无法直接访问其前驱元素
  • 逆序访问单链表中的元素是极其耗时的操作!

    双向链表的定义

    在单链表的结点中增加一个指向其前驱的pre指针

    C++,循环链表,双向链表

    双向链表拥有单链表的所有操作

    • 创建链表
    • 销毁链表
    • 获取链表长度
    • 清空链表
    • 获取第pos个元素操作
    • 插入元素到位置pos
    • 删除位置pos处的元素

      插入操作

      C++,循环链表,双向链表

      插入操作异常处理
      插入第一个元素异常处理
      在0号位置处插入元素;
      删除操作

      C++,循环链表,双向链表

      双向链表的新操作