小结
‧数组和链表是两种基本的数据结构,分别代表数据在计算机内存中的两种存储方式:连续空间存储和离散空间存储。两者的特点呈现出互补的特性。
‧数组支持随机访问、占用内存较少;但插入和删除元素效率低,且初始化后长度不可变。
‧链表通过更改引用(指针)实现高效的节点插入与删除,且可以灵活调整长度;但节点访问效率低、占用内存较多。常见的链表类型包括单向链表、循环链表、双向链表。
数组与链表的效率对比:
‧动态数组,又称列表,是基于数组实现的一种数据结构。它保留了数组的优势,同时可以灵活调整长度。列表的出现极大地提高了数组的易用性,但可能导致部分内存空间浪费。
数组与列表的差别:
数组的设计目标:
性能优先:适合处理大规模数值数据(如图像像素、传感器数据)
内存效率:存储 100 万个整数时,数组比列表节省约 50% 内存
与 C 语言互操作:可通过 buffer 接口直接访问底层内存
列表的设计目标:
开发效率优先:快速构建复杂数据结构
动态灵活性:自由组合不同类型和嵌套结构
面向对象友好:支持异构数据(如数据库查询结果集)