RosettaCodeData/Task/Doubly-linked-list-Element-insertion/Perl/doubly-linked-list-element-insertion.pl
Ingy döt Net 764da6cbbb CDE
2013-04-10 16:57:12 -07:00

25 lines
572 B
Perl

my %node_model = (
data => 'something',
prev => undef,
next => undef,
);
sub insert
{
my ($anchor, $newlink) = @_;
$newlink->{next} = $anchor->{next};
$newlink->{prev} = $anchor;
$newlink->{next}->{prev} = $newlink;
$anchor->{next} = $newlink;
}
# create the list {A,B}
my $node_a = { %node_model };
my $node_b = { %node_model };
$node_a->{next} = $node_b;
$node_b->{prev} = $node_a;
# insert element C into a list {A,B}, between elements A and B.
my $node_c = { %node_model };
insert($node_a, $node_c);