?? fig20_03.pl
字號:
#!/usr/bin/perl
# Figure 20.3: fig20_03.pl
# A simple demonstration of linked lists.
use warnings;
use strict;
my $linkedList = undef; # defines head reference
traverseList( $linkedList ); # output current list contents
# add an element to $linkedList
$linkedList = { data => "haircut", nextLink => $linkedList };
# add more elements to $linkedList
$linkedList = { data => "batteries", nextLink => $linkedList };
$linkedList = { data => "groceries", nextLink => $linkedList };
$linkedList = { data => "cleaning", nextLink => $linkedList };
print( "\nAfter adding four elements to the list, ",
"the list contains:\n" );
traverseList( $linkedList ); # output current list contents
# swap first two elements
my ( $first, $second ) = ( $linkedList, $linkedList->{ nextLink } );
$first->{ nextLink } = $second->{ nextLink };
$second->{ nextLink } = $first;
# aim head reference at new first element
$linkedList = $second;
print( "\nAfter swapping the first two elements, ",
"the list contains:\n" );
traverseList( $linkedList ); # output current list contents
# delete third element
$second = $linkedList->{ nextLink };
my $third = $linkedList->{ nextLink }->{ nextLink };
$second->{ nextLink } = $third->{ nextLink };
$third = undef;
print( "\nAfter deleting the third element, ",
"the list contains:\n" );
traverseList( $linkedList ); # output current list contents
# Function to output the contents of the linked list it
# receives as an argument.
sub traverseList
{
my $current = shift();
if ( !defined( $current ) ) {
print( "The list is empty.\n" );
return;
}
while ( defined( $current ) ) {
print( "$current->{ data }" ); # print current data
$current = $current->{ nextLink }; # move to next node
if ( defined( $current ) ) { # if next node exists,
print( " --> " ); # output -->
}
}
print( "\n" );
}
###########################################################################
# (C) Copyright 2001 by Deitel & Associates, Inc. and Prentice Hall. #
# All Rights Reserved. #
# #
# DISCLAIMER: The authors and publisher of this book have used their #
# best efforts in preparing the book. These efforts include the #
# development, research, and testing of the theories and programs #
# to determine their effectiveness. The authors and publisher make #
# no warranty of any kind, expressed or implied, with regard to these #
# programs or to the documentation contained in these books. The authors #
# and publisher shall not be liable in any event for incidental or #
# consequential damages in connection with, or arising out of, the #
# furnishing, performance, or use of these programs. #
###########################################################################
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -