数组的基础知识

简介: 数组的基础知识

数组的认识


概念


数组同链表一样,也是数据呈线性排列的一种数据结构。

优点


访问数据简单

缺点


添加和删除数据比较耗时

特点


  • 数组的形式

如图所示,a是数组的名字,[]中的数字表示该数据是数组中的第几个数据(数组下标)


640.png


  • 数组在内存中的存储

如图所示,数据会按顺序存储在内存的连续空间内。


640.png


数组的访问


由于数据是存储在连续空间内,所以每个数据的内存地址都可以通过数组下标算出,我们就可以通过下标直接访问目标数据(随机访问)。


比如我们要访问Red,如果使用指针就只能从头开始查找,但在数组中,只要指定Red所在数组中的下标,便能直接访问。


640.png


数组元素的增加


将数据添加到数组的任意位置,需要在数组的末尾增加新的存储空间,为了给新数据腾出位置,要把已有数据一个个移开,最后在空出来的要添加元素的位置写入要添加的新数据。

例如,要将Green元素插入到Blue和Yellow之间。如图所示


640.png


在数组的末尾增加新的存储空间


640.png

将Red元素移至新存储空间之后


640.png


将Yellow元素移至新存储空间之后


640.png


将Green插入新存储空间中


640.png


数组元素的删除


删除数组中,任意位置的数据,需要先删掉目标数据,然后把后面的数据一个个往空位移,最后删掉多余的空间。

例如,要删除Green元素。


640.png


删掉目标数据


640.png

把Yellow移向空位


640.png

把Red移向空位


640.png

删掉多余部分


640.png


写在最后


  • 文中使用的图片源自《我的第一本算法书》,如若侵权,请评论区留言,作者立即删除相关图片。
  • 公众号无法外链,如果文中有链接,可点击下方阅读原文查看😊
相关文章
|
6月前
|
存储
数组的进阶
数组的进阶
|
22天前
第一章数组
第一章数组
25 0
|
3月前
|
安全 编译器 C语言
C++入门-数组
C++入门-数组
|
4月前
|
存储 Java 索引
Java数组操作:基础与进阶指南
Java数组操作:基础与进阶指南
|
6月前
|
算法 Java 程序员
Java数组全套深入探究——进阶知识阶段4、一维数组练习题
Java数组全套深入探究——进阶知识阶段4、一维数组练习题
57 0
Java数组全套深入探究——进阶知识阶段4、一维数组练习题
|
6月前
|
存储 编译器 C++
第四章:C++中的数组
第四章:C++中的数组
35 1
|
11月前
|
C语言
数组知识点总结
数组知识点总结
56 0
|
存储 搜索推荐 算法
数组掌握秘籍:Java数组进阶指南
数组掌握秘籍:Java数组进阶指南
|
存储 编译器 C语言