java学习笔记{顺序表的增删查改基本操作}

顺序表
用一段物理地址连续的存储单元依次存储,一般使用数组存储,在数组上完成数据的增删查改。可分为静态顺序表或者动态顺序表,一般我们采用动态的,根据需求分配大小。

顺序表的创建
首先需要两个基本属性,一个存储用的数组array,另一个记录数组大小的size。

基本操作
一、增:
分为头插,尾插和指定插入(给下标)。尾插最简单,直接插入后方,然后增加size。

头插和指定插入:
1.判断循环次数,开始和结尾
2.循环从后往前,目的为了不让数据覆盖,
3.array[空间下标] = array[数据下标] ,一般空间下标比数据下标大1.
4 把插入的值写入。
5.size++

二、删
同样分为头删,尾删和指定删除(给下标)。尾删也是一样最简单,size–即可,也可array[–size] = 0。删除并且把删除点归零。

头删和指定删除:
1.判断循环次数,开始和结尾。
2 循环从前向后,目的相同。
3.array[空间下标] = array[数据下标] ,一般空间下标比数据下标小1.
4 size–

三、扩容
增长操作后,有可能容量不够,就需要进行扩容操作(ensureCapacity).
先申请新房子(newArray),一般增加array.length的一半,然后让所有的元素搬到新的家里(for循环),最后告诉地址(this.array = newArray)。当然还有一步,就是回收,不过java中会自动回收。

易错点(或者容易忘记的)
查找和修改很简单,不过与赘述,记录几点易错的
1.增删操作后,记得改变size的值
2.删除操作时,务必检查线性表是否可以被删除(可使用if),即有无元素在里面,如果没有,报错。
3.凡是带有指定下标的,务必先检查指定下标是否合理(可使用if),即有此下标,如果没有,报错。
4.判断报错信息时,if语句里加return或者后面加else,避免报错了但程序还是继续运行了。

发布了22 篇原创文章 · 获赞 1 · 访问量 598

猜你喜欢

转载自blog.csdn.net/zxhl_/article/details/97612931