卡塔尔世界杯冠军_女子乒乓球世界杯 - ecmipu.com

更快地访问链表中的节点

如果链表变得很大,那么访问链表中的节点可能会变得相当慢。我确实想到了一种加快访问速度的方法:有一个数组(也是一个LL),每100个节点就有一个捷径。这样,如果我想获得205个元素,程序将必须经过这个“路径”:short cut to [100] -> short cut to [200] -> [201] -> ... -> [205]。这比通过整个LL到205Element-5 "steps“要快得多,而不是204。是的,如果我想要第n个第100和第99个元素,它会变得更慢,但程序将跳过LL的一大部分来到达那里--从长远来看,它会更快。

但这些捷径需要在添加和删除更多元素后重新调整。删除并不是一个真正的问题-删除一个元素并设置某些指向下一个节点的快捷方式-那些指向正式的第n个节点的切割。添加更多数据是一个问题-添加新元素时,必须将某些节点设置为指向以前的节点。为了找到这些元素,程序必须遍历列表,从最后一个仍然指向第n个元素的捷径开始。除非节点还指向前面的元素,否则整个过程可能会变得很慢,就像我从向量中删除一个元素一样。

有没有一种方法可以加快访问速度,同时保持添加和删除元素的过程相当快?这只是一个好奇心的问题,并不是在一个真正的程序中使用它是一个好主意。

Copyright © 2022 卡塔尔世界杯冠军_女子乒乓球世界杯 - ecmipu.com All Rights Reserved.