算法工程师请进--有结合数组与链表优点的数据结构吗?

有没有这样的数据结构: 1.可以像数组一样用二分法进行查找(链表的顺序查找我觉得太不方便了,如果 数据库大了,这种查找方式岂不浪费时间?); 2.可以像数组一样任意访问其中的某个数据(不一定要用下标法); 3.可以像链表一样方便的删除、插入某个数据,并且执行上述操作时不必像 数组那样大动干戈(移动太多的数据); 4.可以像链表那样动态申请内存(有多少数据申请多少内存),以尽可能的减少 内存浪费. 请问算法高手,有这样的数据结构吗?

第1个回答  2020-01-01
嘿嘿,这是个perfect想法,目前的计算机是不太可能实现的。
理由一:在我们进行数据结构设计时,都脱离不开实际的需求,然而现实中的需求往往都是有侧重的。链表擅长插入删除,顺序表擅长随机访问,我们都要取其优点减少其缺点的。(目前的实际情况)
理由二:如果真存在这样的数据结构,那么你用什么方式存储他呢?是链式还是顺序呢?我们的计算机是存储程序式的计算机,内存是单元模式的,就像排队一样,你要对一系列的数据进行处理,要么让他们连续存(数组),要么让他分散开来(链表)是一个矛盾的两个方面。
小结:从内存角度分析,数组和链表是矛和盾不能兼容的,你理解我的意思了吗?
相似回答