插入数据
列表需要将插入位置之后的数据依次向后挪动一个位置,假定列表中数据元素数量为n,最大挪动n次。算法复杂度是O(n)
链表在插入数据时不需要挪动元素,只需要将要插入的位置前面一位元素所指向下一个元素的地址A,指向要插入到元素的地址。新插入的元素指向下一个元素的地址。
链表插入元素不管链表中元素数量有多少,都可以在固定时间内完成,算法复杂度是O(1)。
删除元素
列表删除元素后,把后面的元素向前挪动一个位置。最大挪动次数是n,算法复杂度是O(n)
链表删除元素,不需要挪动元素位置,只需要将被删除的元素前面一个元素将地址指向被删除元素的下一个元素的地址。算法复杂度是O(1)
元素读取
列表只要知道这个元素在哪个位置,读取元素索引编号就可以了。算法复杂度是O(1)
链表要读取元素,需要从头开始访问,因为链表没有索引。算法复杂度是O(n)