自定义简易的面向对象的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]