"{ Package: 'stx:libbasic2' }"
"{ NameSpace: Smalltalk }"
Object subclass:#SkipListNode
instanceVariableNames:'pointers object'
classVariableNames:''
poolDictionaries:''
category:'Collections-Ordered-Trees-Private'
!
!SkipListNode class methodsFor:'instance creation'!
new: maxLevel
^ super new initialize: maxLevel
!
on: element level: maxLevel
^ (self new: maxLevel) object: element
"Modified (format): / 18-06-2017 / 17:47:43 / cg"
!
tailOfLevel: n
^ self on: nil level: n
! !
!SkipListNode methodsFor:'accessing'!
atForward: i put: node
^ pointers at: i put: node
!
forward: i
^ pointers at: i
!
level
^ pointers size
!
next
^ pointers first
!
object
^ object
! !
!SkipListNode methodsFor:'initialization'!
initialize: maxLevel
pointers := Array new: maxLevel
"Modified (format): / 18-06-2017 / 17:47:07 / cg"
! !
!SkipListNode methodsFor:'printing'!
printOn: aStream
| first |
aStream
nextPut: $[;
nextPutAll: object printString;
nextPutAll: ']-->('.
first := true.
pointers do: [:node |
first ifTrue: [first := false] ifFalse: [aStream space].
aStream nextPutAll: (node isNil ifTrue: ['*'] ifFalse: [node object printString])].
aStream nextPut: $)
"Modified: / 18-06-2017 / 17:47:35 / cg"
! !
!SkipListNode methodsFor:'private'!
object: anObject
object := anObject
"Modified (format): / 18-06-2017 / 17:47:13 / cg"
! !
!SkipListNode class methodsFor:'documentation'!
version
^ '$Header$'
!
version_CVS
^ '$Header$'
! !