顺序表的定义,插入,删除,查找(考研)


顺序表的定义:

 

 

 顺序表——用顺序存储的方式实现线性表栓徐存储。把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现

 

 

 

顺序表的实现——静态分配:(静态分配是将顺序表一次性开辟一个连续的空间,这些空间一旦确定则不可改变空间大小)

 顺序表的实现——动态分配

 

 

 

 顺序表的特点:

  1.  随机访问,即可以在O(1)时间内找到第i个元素。
  2. 存储密度高,每个节点只存储数据元素。
  3. 扩展容量不方便(即便采用动态分配的方式实现,扩展长度的时间复杂度也比较高)。
  4. 插入,删除操作不方便,需要移动大量元素。

 总结:

 

 顺序表——插入

首先我们要清楚一点的是数组的位置对应哪个下标,data[10]定义的长度为10,对应的位序从1开始,下标则从0开始。

ListInsert(L,3,3)的意思是,将数字3插入到L表中数组data[2]位序为3下标为2的内存空间中。为了能将数据插入,需要将

data[2]的数据及后面数组往后都移动一位,腾出data[2]的空间将3放进去。

 

 

 在我们插入数据的时候,要学会思考代码的“健壮性”意思是我们这个代码能否给使用者反馈,而不至于在出现错误时无从下手。

例如这个顺序表中,当数组空间被占满的时候,能够进行安全校验,开发者要有能够预判各种异常状况的思维。

 

 

 

 插入操作的时间复杂度:

 

 

 顺序表——删除

这里要特别注意&的使用

 

 删除操作的时间复杂度

插入删除总结:

 

顺序表——查找

 

 

 

 

 结构类型的比较:

 

 

 

 按值查找的时间复杂度:

 

 

 查找总结:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM