Sha256: 7d31683add0e060bf94ad7ddb340e376b294ea8e946702036e511bc1ccc65d0e
Contents?: true
Size: 856 Bytes
Versions: 192
Compression:
Stored size: 856 Bytes
Contents
unit class LinkedList:ver<1>; 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
192 entries across 192 versions & 1 rubygems