如何在DoubleLinkedList的中间实现插入元素而不应对它? 一般来说,我想在集合中找到一些元素,然后在它之后插入一个新元素。
有方法DoubleLinkedList.insert,但我不太清楚它是如何工作的。在文档中,它以这种方式描述:
插入此链接列表当前位置的链接列表
但是链表中的当前位置是什么?我该怎么设置它?
我希望有O(1)插入时间。
答案 0 :(得分:1)
要在DoubleLinkedList的中间插入元素,首先要找到你的“中间”字样。然后插入:
val list = mutable.DoubleLinkedList(...)
list.next.next....insert(insertion)
答案 1 :(得分:1)
首先,您无法使用insert
插入元素,因为它需要DoubleLinkedList
作为参数
def insert(即:DoubleLinkedList [A]):单位
只需使用indexWhere
和apply
方法,例如将30替换为3:
yourlist(yourlist.indexWhere(_ == 30)) = 3
答案 2 :(得分:0)
使用span
将集合分成保存条件的初始元素和第一个项目不存在的元素; e.g
val (l,r) = DoubleLinkedList(1,2,3,4,5).span(_ != 3)
l = DoubleLinkedList(1, 2)
r = DoubleLinkedList(3, 4, 5)
然后将值3
替换为33
,如此
l ++ DoubleLinkedList(33) ++ r.tail
注意在Scala 2.11.6中使用-deprecation运行REPL以注意弃用警告,例如
warning: object DoubleLinkedList in package mutable is deprecated:
Low-level linked lists are deprecated.