Sha256: de31f432afc4420c4db59611e16b888458db5ccfb3e864deaddc045218c03e35
Contents?: true
Size: 856 Bytes
Versions: 83
Compression:
Stored size: 856 Bytes
Contents
unit class LinkedList:ver<2>; class ListNode { has $.next is rw; has $.previous is rw; has $.value; } has $!first; has $!last; method push-list($value) { my $next = ListNode.new( value => $value, previous => $!last ); if ( $!last ) { $!last = $!last.next= $next ; } else { $!first = $!last = $next; } } method unshift-list($value) { my $next = ListNode.new( value => $value, next => $!first ); if ( $!first ) { $!first = $!first.previous = $next ; } else { $!first = $!last = $next; } } method shift-list() { my $f = $!first; $!first = $!first.next; unless $!first { $!last = $!first } return $f.value; } method pop-list() { my $f = $!last; $!last = $!last.previous; unless $!.last { $!first = $!last } return $f.value; }
Version data entries
83 entries across 83 versions & 1 rubygems