bir DoubleLinkedList
aynı zamanda düzenli List
için ::
benzer liste kendisi ve bir liste düğümü vardır. Sırasıyla bir hücreden diğerine veya next
ve prev
ile bir öncekine gidebilir ve bir hücrenin değerini elem
ile alabilirsiniz. Eğer ilk hücreyi kaldırmak eğer bir sonraki hücreye liste tutan senin Var yeniden atama gerekeceğinden
scala> val list = collection.mutable.DoubleLinkedList(1,2,3,4,5)
list: scala.collection.mutable.DoubleLinkedList[Int] = DoubleLinkedList(1, 2, 3, 4, 5)
scala> list.next.next.remove() // list.next.next points on 3rd cell
scala> list
res0: scala.collection.mutable.DoubleLinkedList[Int] = DoubleLinkedList(1, 2, 4, 5)
Dikkatli olun:
scala> val list = collection.mutable.DoubleLinkedList(1,2,3,4,5)
list: scala.collection.mutable.DoubleLinkedList[Int] = DoubleLinkedList(1, 2, 3, 4, 5)
scala> list.remove() // remove first item
scala> list // this is now a 'dangling' cell, although it still points to the rest of the list
res6: scala.collection.mutable.DoubleLinkedList[Int] = DoubleLinkedList(1, 2, 3, 4, 5) // uh? didn't I remove the first cell?
scala> list.next.prev // we can check that it is not pointed back to by its next cell
res7: scala.collection.mutable.DoubleLinkedList[Int] = null
İyi cevap - dokümanlar değiller bir utanç biraz StackOverflow kadar iyi değil! –
Birçok kez aramadan ilk geri dönmek için bir yolu var mı? – user1377000
Hayır, "null" ifadesini bulana kadar 'prev 'çağırmaya devam etmelisiniz. –