zoukankan      html  css  js  c++  java
  • 数据结构(二):链表

    一、概述(本文以最简单的单向链表为例,其它复杂的链表以后再说明)

    • 链表和数组不同,链表在创建的时候不会预先在内存中开辟空间。

    • 链表的存储逻辑上是连续的,物理上是不连续的

    • 链表在存储数据的内存中会有两块数据,一块用来存数据,一块用来存储指向下一个数据节点的指针

    二、图示

    • 由上图我们可以看出,链表在逻辑上它的存储是连续的

    • 但是在内存实际的存储却是碎片化的

    三、操作链表的时间复杂度

    • 查询

      • 链表中没有索引供我们访问,所以由上图我们可以看出来,要想访问链表中的某一个元素,必须从头开始找,利用元素的next指针,一个挨着一个的查找。

      • 所以链表查询元素的时间复杂度为O(n)

    • 插入

      • 由上图我们可以看出,在该链表的a元素与b元素中插入一个c元素。我们只需要a.next=c; c.next=b;就可以了;

      • 所以链表的插入元素时间复杂度为O(1)

    • 删除

      • 如上图所示,删除该链表中的b元素,我们只需要将a.next=c; 即可

      • 所以链表删除元素的时间复杂度为O(1)

    转载请注明出处:https://www.cnblogs.com/Infancy/p/12591581.html

  • 相关阅读:
    Sql in VBA 之 初识ADO
    Excel读取Word Table元素
    工作表是否已存在函数
    按模板生成工作表
    多层字典对象应用案例分析
    字典的应用
    字典的基本功能
    Dictionary 对象
    File System Object(FSO对象)B
    File System Object(FSO对象)A
  • 原文地址:https://www.cnblogs.com/Infancy/p/12591581.html
Copyright © 2011-2022 走看看