Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie einen Stack in Perl

So implementieren Sie einen Stack in Perl

青灯夜游
青灯夜游Original
2019-03-16 14:09:412668Durchsuche

In Perl ist ein Stapel eine lineare Datenstruktur, die der Reihenfolge LIFO (Last In, First Out) oder FILO (First In, First Out) folgt. Der folgende Artikel stellt Ihnen vor, wie Sie einen Stack in Perl implementieren. Ich hoffe, er wird Ihnen hilfreich sein.

So implementieren Sie einen Stack in Perl

Wie erstelle ich einen Stapel?

Einfach ausgedrückt ist ein Stapel ein Array, bei dem Einfügungen und Löschungen nur an einem Ende, dem oberen Ende des Stapels, erfolgen.

Das Erstellen eines Stacks in Perl ist sehr einfach. Wir müssen lediglich ein Array deklarieren.

Beispiel:

Erstellen Sie einen Stapel, der möglicherweise leer ist:

@stack;

Oder Sie können ihn initialisieren:

@stack = (1, 2, 3);

Wie wäre es im Stapel Push?

Pushing ist der Vorgang des Einfügens von Elementen in den Stapel. Das Pushen kann mit der Funktion push() oder der Funktion splice() erfolgen.

1. Verwenden Sie push() zum Pushen:

Grundlegende Syntax:

push(@stack,list);

Parameter:

● @stack: Der Stapel, der gepusht werden soll.

● Liste: Elemente, die auf den Stapel verschoben werden sollen. Diese Elemente können Skalare, Arrays, Hashes oder eine beliebige Kombination dieser Elemente sein.

Beispiel:

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

Ausgabe:

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

2. Verwenden Sie splice() zum Pushen:

Grundsätzliche Syntax:

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

Parameter :

● Die Funktion splice() hängt „list“ an das Ende von @stack an.

● „Liste“ kann ein Skalar, ein Array oder ein Hash sein.

Beispiel:

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

Ausgabe:

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

Wie implementiert man Pop im Stapel?

In einem Stapel ist Poppen der Vorgang, bei dem das oberste Element des Stapels gelöscht wird. Das Poppen kann mit der Funktion pop() oder splice() erfolgen.

1. Verwenden Sie die Funktion pop(), um Folgendes aufzurufen:

Grundlegende Syntax:

$popped_element = pop(@stack);

Parameter:

●pop () Die Funktion gibt das geplatzte Element zurück.

● $ popped_element enthält das vom Stapel entfernte Element.

Beispiel:

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

Ausgabe:

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

Hinweis: Gibt undef zurück, wenn der Stapel leer ist. undef ähnelt NULL in Java und None in Python. Es wird jedoch kein Fehler ausgegeben.

2. Verwenden Sie die Funktion splice(), um Folgendes anzuzeigen:

Grundlegende Syntax:

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

Parameter:

●splice ()-Funktion Entfernt das letzte Element des Stapels und gibt es zurück.

● $popped_element: speichert den zurückgegebenen Wert.

Beispiel:

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

Ausgabe:

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

Hinweis: Wenn der Stapel leer ist, wird ein Fehler ausgelöst.

Empfohlene verwandte Video-Tutorials: „Perl-Tutorial

Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen Stack in Perl. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn