代码之家  ›  专栏  ›  技术社区  ›  JohnPristine

Java排序的双链表:如何在正确的位置快速插入新节点?

  •  1
  • JohnPristine  · 技术社区  · 11 年前

    我有一个需要快速插入和删除的双重链接列表。我可以在任何一个方向横向移动整个东西,找到插入或移除的位置,但是 有没有更聪明的方法可以找到插入点或移除点 ? 首先想到的是二进制搜索,但由于它是一个没有索引的链表(不是数组),我不知道如何在链表中跳转。

    这里的正确方法是什么,可以使插入和删除最快?

    3 回复  |  直到 11 年前
        1
  •  5
  •   OldCurmudgeon    11 年前

    明智的方法是朝着 Skip List .

    其他方法包括缓存最近的访问,并智能地猜测从哪里开始搜索,在哪里结束,在哪里开始或在最近的位置。

        2
  •  0
  •   MrSmith42    11 年前

    您可以使用 B-tree 使用一个 Skip_list 对于快速搜索来说,双链表是错误的数据结构。

        3
  •  -1
  •   GerritCap    11 年前

    正如你所指出的,因为链表是不可索引的,所以没有办法,只能在列表上循环以找到正确的插入点。。。