kernelsky 发表于 2017-5-19 13:15:49

自定义简易的面向对象的perl栈与队列类

  perl中的数组其实已经具备了栈与队列的特点,下面是对数组经过一些封装的stack,queue对象
  1、Stack类
  创建一个Stack.pm文件

package Stack;
sub new{
$self={
arr=>[]
};
return bless $self;
}
sub push{
$self=shift;
$d=shift;
push @{$self->{arr}},$d;
}
sub pop{
$self=shift;
return pop @{$self->{arr}};
}
sub toString{
$self=shift;
return@{$self->{arr}};
}
1;
  2、Queue类
  创建一个Queue.pm

package Queue;
sub new{
$self={
arr=>[]
};
return bless $self;
}

sub en_queue{
$self=shift;
$d=shift;
push @{$self->{arr}},$d;
}
sub de_queue{
$self=shift;
return shift @{$self->{arr}};
}
sub toString{
$self=shift;
return@{$self->{arr}};
}
1;
  3、调用

use Stack;
$stack=new Stack;
$stack->push('gg');
$stack->push('aa');
$stack->push('123');
print $stack->toString(),"\n";
$stack->pop();
print $stack->toString(),"\n";
$stack->pop();
print $stack->toString(),"\n";
$stack->pop();
print $stack->toString(),"\n";

use Queue;
$queue=Queue->new();
$queue->en_queue(1);
$queue->en_queue('a');
$queue->en_queue('2');
print $queue->toString(),"\n";
$queue->de_queue();
print $queue->toString();
  
 以上Stack与Queue只是个简单实现,其他操作未添加
页: [1]
查看完整版本: 自定义简易的面向对象的perl栈与队列类