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

Comment implémenter une pile en Perl

青灯夜游
Libérer: 2019-03-16 14:10:11
original
2712 Les gens l'ont consulté

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;
Copier après la connexion

Ou vous pouvez l'initialiser :

@stack = (1, 2, 3);
Copier après la connexion

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);
Copier après la connexion

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");
Copier après la connexion

Sortie :

原始栈:1 2 3
更新后的堆栈:1 2 3 scalar  a r r a y PHP 10 Perl 20
Copier après la connexion

2. Utilisez splice() pour pousser :

Syntaxe de base :

splice(@stack, scalar(@stack), 0, list);
Copier après la connexion

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");
Copier après la connexion

Sortie :

原始栈:1 2 3
更新后的堆栈:1 2 3 scalar h e l l o PHP 10 Perl 20
Copier après la connexion

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);
Copier après la connexion

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");
Copier après la connexion

Sortie :

原始堆栈:1 2 3
弹出元素:3
更新后的堆栈:1 2
Copier après la connexion
Copier après la connexion

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);
Copier après la connexion

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");
Copier après la connexion

Sortie :

原始堆栈:1 2 3
弹出元素:3
更新后的堆栈:1 2
Copier après la connexion
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal