我正在尝试在Perl中实现一个堆栈,我有一个数组.我想推送数组上的项目,弹出项目并打印出新的数组,如下所示:"1,2,3,5,6
我怎样才能做到这一点?我的代码只是将数字6添加到数组的顶部.
#!usr/bin/perl
@array = 1..5;
push @array, 6; #Push the number 6 into the array
pop @array, 4; #Pop the number 4 out of the array
print "The array is now $array[-1].\n";
Run Code Online (Sandbox Code Playgroud)
首先,使用use strict; use warnings;.
该怎么pop @array, 4;办?
弹出四个元素?
splice(@array, -4);
Run Code Online (Sandbox Code Playgroud)
用值4替换最后一个元素?
$array[-1] = 4;
Run Code Online (Sandbox Code Playgroud)
过滤掉值4?
@array = grep { $_ != 4 } @array;
Run Code Online (Sandbox Code Playgroud)
参考:
顺便说一句,#usr/bin/perl没有意义.它应该是#!/usr/bin/perl.
顺便说一句,换行符的转义序列\n不是/n.
堆栈的全部意义是您只能从顶部访问项目。您只能将项目推到堆栈顶部或从堆栈顶部弹出项目。中间的元素不可访问。使用Perl的shift和unshift功能,您还可以实现队列和出队(或双端队列)。
#!/usr/bin/perl
use strict;
use warnings;
my @array = 1..5;
push @array, 6;
push @array, 7;
my $top = pop @array;
print "Top was $top\n";
print "Remainder of array is ", join(", ", @array), "\n";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1139 次 |
| 最近记录: |