1 | module.exports = class LinkedList
|
2 |
|
3 | |
4 |
|
5 | getNextSibling: () ->
|
6 | return @_nextSibling
|
7 |
|
8 | |
9 |
|
10 | addNextSibling: (sibling, replNext) ->
|
11 | @_nexSibling._prevSibling = sibling if !!@_nextSibling;
|
12 | sibling._prevSibling = @
|
13 | sibling._nextSibling = @_nextSibling if not replNext
|
14 | @_nextSibling = sibling
|
15 |
|
16 | |
17 |
|
18 |
|
19 | getPrevSibling: () ->
|
20 | return @_prevSibling
|
21 |
|
22 | |
23 |
|
24 | addPrevSibling: (sibling, replPrev) ->
|
25 | @_prevSibling._nextSibling = sibling if !!@_prevSibling;
|
26 | sibling._nextSibling = @
|
27 | sibling._prevSibling = @_prevSibling if not replPrev
|
28 | @_prevSibling = sibling
|
29 |
|
30 | |
31 |
|
32 | getFirstSibling: () ->
|
33 | first = @
|
34 |
|
35 |
|
36 | first = first._prevSibling while !!first._prevSibling
|
37 |
|
38 | return first
|
39 |
|
40 | |
41 |
|
42 |
|
43 | getLastSibling: () ->
|
44 | last = @
|
45 |
|
46 | last = last._nextSibling while !!last._nextSibling
|
47 |
|
48 | return last
|
49 | |
\ | No newline at end of file |