是否存在可以在 O(n) 中以插入顺序和数量级遍历的数据结构,最多 O(log(n)) 插入和删除?
换句话说,给定元素 5、1、4、3、2(按此顺序插入),它可以按O(n) 时间1,2,3,4,5
或按5,1,4,3,2
O(n) 时间遍历。
当然我可以使用一个数组并在遍历之前简单地对其进行排序,但这需要一个 O(n*log(n)) 预遍历步骤。另外,我可以使用多链表来实现 O(n) 遍历,但在这种情况下,插入和删除操作也会花费 O(n),因为我不能保证最新的元素一定是最大的。
如果存在这样的数据结构,请给我一个正式的名称,以便我可以进一步研究它,或者如果它没有,一个简短的表面级描述将不胜感激。
谢谢