数据结构之线性表

线性表

  • 定义:线性表是由n个数据元素组成的有限序列,每一个数据元素有且只有一个直接前驱和一个直接后继(第一个元素只有直接后继,最后一个元素只有直接前驱)

  • 线性表的存储结构:分为顺序存储与非顺序存储

    1. 顺序存储结构通常采用数组实现

      • 优点:易存取数据元素

      • 缺点:插入或删除元素比较繁琐

    • 插入:在插入元素时,需要将待插入位置及之后的元素整体后移(从后面开始依次进行),再将待插入元素插入到相应位置,顺序表长度加一
      image

    • 删除:将待删除元素之后的元素依次前移覆盖掉前面的元素,顺序表长度减一

      image

    1. 非顺序存储结构通常采用链表实现

      • 优点:易插入或删除元素
      • 缺点:查找时需要遍历整个链表
    • 插入:

      1. 头插法: 借用head节点来进行插入,首先将待插入节点的next指向head.next后,将haed.next指向待插入节点

      image

      1. 尾插法:借用rear节点进行插入(rear节点始终指向链表的最后一个元素)。将rear.next指向待插入节点后将rear节点重新指向插入的节点
        image
    • 删除: 利用两个额外的节点(节点front,节点behind),刚开始时节点front指向head节点,behind.next节点指向front节点,利用循环查找使得front节点指向待删除节点,这时可用behind.next = front.next删除指定节点
      image

posted @ 2023-06-07 20:46  梅影&无迹  阅读(38)  评论(0)    收藏  举报