数组:
优点:
元素在内存中连续存储,查找效率高。
缺点:
在存储之前,需要预先申请内存空间。
在运行过程中,无法动态申请空间。如果数据量小,造成内存浪费。如果数据量大,造成内存溢出
在修改和删除操作时,效率低
应用场景:
数据量可控。偏向查询操作。构建线性表稳定
扩容方式:
申请更大内存,将原数据拷贝到新数组中。
链表:
优点:
内存动态分配。
数据类型多样化
修改和删除操作灵活
缺点:
查询时需要遍历,效率低下
应用场景:
数据动态分配,数据量不可控。频繁插入删除操作。动态性较强
扩容方式:
直接动态分配。使用指针向后添加