Maison >développement back-end >Tutoriel C#.Net >Comment implémenter une pile en Perl

Comment implémenter une pile en Perl

青灯夜游
青灯夜游original
2019-03-16 14:09:412722parcourir

En Perl, une pile est une structure de données linéaire qui suit l'ordre LIFO (dernier entré, premier sorti) ou FILO (premier entré, premier sorti) ; alors comment implémenter une pile ? L'article suivant vous présentera comment implémenter une pile en Perl. J'espère qu'il vous sera utile.

Comment implémenter une pile en Perl

Comment créer une pile ?

En termes simples, une pile est un tableau où les insertions et les suppressions n'ont lieu qu'à une extrémité appelée le haut de la pile.

Créer une pile en Perl est très simple. Tout ce que nous avons à faire est de déclarer un tableau.

Exemple :

Créez une pile qui peut être vide :

@stack;

Ou vous pouvez l'initialiser :

@stack = (1, 2, 3);

Comment pousser en pile ?

Le push est le processus d'insertion d'éléments dans la pile. Le push peut être effectué à l’aide de la fonction push() ou de la fonction splice().

1. Utilisez push() pour pousser :

Syntaxe de base :

push(@stack,list);

Paramètres :

● @stack : La pile à pousser .

● Liste : éléments à pousser sur la pile. Ces éléments peuvent être des scalaires, des tableaux, des hachages ou toute combinaison de ces éléments.

Exemple :

#初始化堆栈
@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");

Sortie :

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

2. Utilisez splice() pour pousser :

Syntaxe de base :

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

Paramètres :

● La fonction splice() ajoute 'list' à la fin de @stack.

● 'list' peut être un scalaire, un tableau ou un hachage.

Exemple :

#初始化堆栈
@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");

Sortie :

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

Comment implémenter le pop dans la pile ?

Dans une pile, le popping est le processus de suppression de l'élément le plus haut de la pile ; le popping peut être effectué à l'aide de la fonction pop() ou de la fonction splice().

1. Utilisez la fonction pop() pour faire apparaître :

Syntaxe de base :

$popped_element = pop(@stack);

Paramètres :

La fonction ●pop () renvoie l'élément sauté.

● $ popped_element contient l'élément extrait de la pile.

Exemple :

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

Sortie :

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

Remarque : Si la pile est vide, undef est renvoyé. undef est similaire à NULL en Java et None en Python. Cependant, aucune erreur n'est générée.

2. Utilisez la fonction splice() pour faire apparaître :

Syntaxe de base :

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

Paramètres :

La fonction ●splice( ) supprime le dernier élément de la pile et le renvoie.

● $popped_element : stocke la valeur renvoyée.

Exemple :

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

Sortie :

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

Remarque : Si la pile est vide, une erreur est générée.

Tutoriels vidéo associés recommandés : "Tutoriel Perl"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn