线性表(上)

线性表

听名字也知道线性表是可以理解为一个一维的东西.类似于一条线.所有数据都是链接在这一条线上.

这条线可以分为两种:1.顺序存储.类似数组,其中的元素在物理空间上是紧紧相依的.2.链式存储.线性表间数据是通过指针相连的,在物理上不是紧紧相依的.

这就带来了线性表的两种特性.

顺序访问:

对于链表来说,因为在内存中不是顺序存放的,为了访问某个元素,必须从链头开始顺着指针查找.

随机访问:

对于顺序存储的线性表来说.因为在内存中是顺序存放的.可以直接通过下标(譬如数组)来访问某个元素.

数组的随机访问

不过对于数组来说.虽说数组比较适合查找,并且根据下标随机访问的时间复杂度为O(1).但是,"插入"和"删除"就显得比较低效了.

数组的插入和删除

当一个长度为n的数组我们在它的i(i < n)的位置进行添加/删除工作,在保持数组的顺序的前提下,添加时,我们需要将in的位置的元素往后挪动一位.然后插入到i.删除时,我们需要先删除i.然后in的元素往前挪动一位.

插入和删除的时间复杂度为O(n)

发布了268 篇原创文章 · 获赞 59 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/qq_18683985/article/details/100843456
今日推荐