在我们写程序解决问题时,亦或是在面临面试官提问的时候,经常会遇到数据结构的问题,比如“如果要用线性表,那么什么时候选择顺序表?什么时候选用链表作为线性表的存储结构?等等,针对这种问题,小编总结了几个顺序表与链表的选择依据,希望可以帮助到大家:
1.存取方式。当对线性表主要进行查找操作,很少进行插入与删除操作时,采用顺序表较好。(顺序表是随机存储结构,获取任意元素的时间复杂度都是O(1);而链表是顺序存储结构,存取某个结点的时间复杂度为O(n)
2.插入与删除操作。对于频繁进行插入与删除数据元素的线性表,选用链表较好。(链表插入和删除某个元素,只需修改指针;而顺序表需要平均移动表中近一半的数据元素)
3.分配方式。当线性表的长度变化较大,难以事先估计其存储规模时,采用链表较好。(顺序表采用静态分配方式,而链式表采用动态分配法)
4.存储密度。如果内存空间是问题的主要矛盾,那选顺序表吧。(顺序表的存储密度为1,而链式表的存储密度小于1)
实际选用哪种存储结构,由具体问题的要求和性质决定。
以上就是极悦小编介绍的"线性表的两种存储结构:顺序表与链表",希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为您务。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习