ホームページ  >  記事  >  バックエンド開発  >  Perl でスタックを実装する方法

Perl でスタックを実装する方法

青灯夜游
青灯夜游オリジナル
2019-03-16 14:09:412668ブラウズ

Perl では、スタックは LIFO (後入れ先出し) または FILO (先入れ先出し) の順序に従う線形データ構造です。では、スタックを実装するにはどうすればよいでしょうか?次の記事では Perl でスタックを実装する方法を紹介しますので、ご参考になれば幸いです。

Perl でスタックを実装する方法

#スタックを作成するにはどうすればよいですか?

簡単に言うと、スタックとは、スタックの最上部と呼ばれる一方の端でのみ挿入と削除が発生する配列です。

Perl でスタックを作成するのは非常に簡単です。必要なのは配列を宣言することだけです。

例:

空のスタックを作成します:

@stack;

または、初期化することもできます:

@stack = (1, 2, 3);

どうでしょうか。スタック内でプッシュしますか?

プッシュとは、要素をスタックに挿入するプロセスです。プッシュは、push() 関数または splice() 関数を使用して実行できます。

1. Push() を使用してプッシュします:

基本構文:

push(@stack,list);

パラメータ:

● @stack: プッシュされるスタック。

● リスト: スタックにプッシュされる要素。これらの要素は、スカラー、配列、ハッシュ、またはこれらの要素の任意の組み合わせです。

例:

#初始化堆栈
@stack = (1..3); 
  
#输出原始栈
print "原始栈: @stack"; 
  
#要推送的标量
$scalar = "scalar"; 
  
# 要推送的数组
@array = ("a", "r", "r", "a", "y"); 
  
# 要推送的哈希
%hash = ("PHP" => 10,  
         "Perl" => 20); 
           
# 可以同时插入标量、数组和哈希
push(@stack, ($scalar, @array, %hash));  
  
# 推送操作后更新堆栈
print("\n更新后的堆栈:@stack");

出力:

原始栈:1 2 3
更新后的堆栈:1 2 3 scalar  a r r a y PHP 10 Perl 20

2. splice() を使用してプッシュ:

基本構文:

splice(@stack, scalar(@stack), 0, list);

パラメータ:

● splice() 関数は、@stack の末尾に「list」を追加します。

● 「リスト」には、スカラー、配列、またはハッシュを指定できます。

例:


#初始化堆栈
@stack = (1..3); 
  
#输出原始栈
print "原始栈: @stack"; 
  
#要推送的标量
$scalar = "scalar"; 
  
# 要推送的数组
@array = ("h", "e", "l", "l", "o"); 
  
# 要推送的哈希
%hash = ("PHP" => 10,  
         "Perl" => 20); 
  
# 可以同时插入标量、数组和哈希
splice(@stack, scalar(@stack), 0,  
       ($scalar, @array, %hash)); 
         
#  推送操作后更新堆栈
print("\n更新后的堆栈:@stack");

出力:

原始栈:1 2 3
更新后的堆栈:1 2 3 scalar h e l l o PHP 10 Perl 20

スタックにポップを実装するにはどうすればよいですか?

スタックでは、ポップはスタックの最上位の要素を削除するプロセスです。ポップは、pop() 関数または splice() 関数を使用して完了できます。

1. Pop() 関数を使用してポップアップを実現します:

基本構文:

$popped_element = pop(@stack);

パラメータ:

● Pop() この関数はポップされた要素を返します。

● $ Popped_element には、スタックからポップされた要素が含まれます。

例:

# 初始化堆栈
@stack = (1..3); 
  
# 原始栈
print "原始栈: @stack"; 
  
# 移除并返回最上面的元素,即3。
$popped_element = pop(@stack);  
  
# 输出弹出元素
print "\n弹出元素:$popped_element"; 
         
# 弹出操作后更新堆栈
print("\n更新后的堆栈:@stack");

出力:

原始堆栈:1 2 3
弹出元素:3
更新后的堆栈:1 2

注: スタックが空の場合は、undef が返されます。 undef は、Java の NULL や Python の None に似ています。ただし、エラーはスローされません。

2. splice() 関数を使用してポップアップを表示します:

基本構文:

$popped_element=splice(@stack, -1);

パラメータ:

● splice () 関数 スタックの最後の要素を削除して返します。

● $popped_element: 戻り値を格納します。

例:


# 初始化堆栈
@stack = (1..3); 
  
# 原始栈
print "原始栈: @stack"; 
  
# 使用splice()函数弹出
$popped_element = splice(@stack, -1); 
  
# 输出弹出元素
print "\n弹出元素:$popped_element"; 
         
# 弹出操作后更新堆栈
print("\n更新后的堆栈:@stack");

出力:

原始堆栈:1 2 3
弹出元素:3
更新后的堆栈:1 2

注: スタックが空の場合、エラーが発生します。

関連ビデオ チュートリアルの推奨事項: 「

Perl チュートリアル

以上がPerl でスタックを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。