http://www.perlmonks.org?node_id=1052252


in reply to Linked List

You could remove the need for the $pred variable altogether, if you work with a little more indirection. So something along these lines :-

while ( defined $curr ) { if ($curr->[NEXT]->[VALUE] == $value) { $curr->[NEXT] = $curr->[NEXT]->[NEXT]; } else { $curr = $curr->[NEXT]; }

You'll have to think about what happens at the start and end of your list.

The next thing to do is to write a sort by insertion routine ;)

Replies are listed 'Best First'.
Re^2: Linked List
by choroba (Cardinal) on Sep 04, 2013 at 10:20 UTC
    Only the leftmost dereference arrow is mandatory:
    while ( defined $curr ) { if ($curr->[NEXT][VALUE] == $value) { $curr->[NEXT] = $curr->[NEXT][NEXT]; } else { $curr = $curr->[NEXT]; }
    لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
Re^2: Linked List
by code-ninja (Scribe) on Sep 04, 2013 at 09:02 UTC
    Working on it! Insertion sort and all.

    well, to be frank enough, I find Perl's syntax a bit more cryptic than C (though that might be because I've mostly programmed in C throughout my academic life). I'm using this book but it assumes that you are Perl samurai if not a ninja (or a Jedi) if you get what I mean. :/

    but whatever, I learn better (with a steep learning curve) by doing... so I'll soon be asking doubts about insertion sorting ;)