美文网首页程序员
顺序表的一点见解

顺序表的一点见解

作者: 奔跑之咸鱼 | 来源:发表于2018-05-24 14:55 被阅读0次

基本操作


假设用结构体声明了顺序表 SqList的变量*L,那么初始化线性表就是让表长(L.length)=0,判断顺序表为空也是用到这个条件。将顺序表强制清空的条件则是L-》length=0,这里就有个疑问了,前面说的L.length=0和L-》length=0有什么区别呢?我是这样认为的,L.length=0是将结构体中的length赋值为0,而L-》length=0是用*L来操作结构体中的数据,既然length为0就算空表,那我就用L指向length的地址,将他的值强制赋为0,已达到清空表中数据的目的

长度为length的顺序表

返回元素个数自然就是返回L.length了。接下来是查找,也就是返回L中第i个元素的值,这里用的是Sqlist L而不是Sqlist *L,这两者的区别就在于L只是操作结构体中的数据不会影响到顺序表,*L是指针,操作的是地址,会改变顺序表的结构。查找某个元素的值,他的边界条件是如果长度为0或要查找的数小于1或要查找的数大于顺序表的长度就查找失败。然后把数据赋给承接的变量。在接下来是添加,添加就是把在某个位置之前插入数据,并且长度+1,他的边界条件是如果长度等于数组申请的最大空间就不能添加,如果要插入的位置小于1或大于L-》length+1,同样不能添加。如果可以添加,那么如果插入的位置<= L-》length也就是插入的数据不在表尾,开始添加,加完不要忘记给表长加1。最后是删除,边界条件是表空不能删,删除位置小于1或大于表长也不能删,删完也要记得表长减1

总结


时间性能:查找O(1),插入和删除O(n)

空间性能:需要预分配空间,分大浪费,分小易发生上溢

使用场景:进行尾插,不需要进行遍历来查找最后一个位置

相关文章

  • 顺序表的一点见解

    基本操作 假设用结构体声明了顺序表 SqList的变量*L,那么初始化线性表就是让表长(L.length)=0,判...

  • 无标题文章

    二级标题 三级标题 关键字 文档正文 第一点 第二点 第三点 顺序表 顺序表的结构 顺序表的操作

  • 数据结构与算法(二,线性表的顺序存储结构,穷举法(冒泡和选择排序

    线性表 顺序表 顺序表的特性 顺序表的元素有前驱和后继 顺序表有size 顺序表的增删改查 顺序表的优缺点优点:尾...

  • +load +initialize的一点见解

    整体比较 对方法执行顺序的一点见解 这两个方法的执行顺序和一般方法的执行顺序都有些差异,按照普通的方法调用顺序,如...

  • 线性表之顺序存储-顺序表

    顺序表的操作 [x] 向有序顺序表插入一个元素 [x] 顺序表的冒泡排序 [x] 顺序表的删除操作 [x] 顺序表...

  • 线性表-顺序表与单链表

    顺序表 线性表的顺序存储,是逻辑相邻,物理存储地址也相邻。 结构定义 顺序表的初始化 顺序表的插入 顺序表的取值 ...

  • 顺序表-动态顺序表

    顺序表是逻辑上相邻的元素物理也相邻的。 静态内存是指在程序开始运行时由编译器分配的内存,它的分配是在程序开始编译时...

  • 顺序表-静态顺序表

    线性表,全名为线性存储结构。将具有“一对一”关系的数据“线性”地存储到物理空间中,这种存储结构就称为线性存储结构(...

  • 数据结构之线性表

    1、线性表-顺序表线性表-顺序表

  • 顺序表和链表的区别

    参考:线性表和链表的区别 注:参考文中的‘线性表’准确的说应该是’顺序表‘,链表与顺序表都是线性表。 顺序表:顺序...

网友评论

    本文标题:顺序表的一点见解

    本文链接:https://www.haomeiwen.com/subject/boldjftx.html