Perl中如何實作堆疊

青灯夜游
發布: 2019-03-16 14:10:11
原創
2686 人瀏覽過

在Perl中堆疊是一種線性資料結構,遵循LIFO(後進先出)或FILO(先進先出)順序;那麼如何實現堆疊?以下這篇文章就來跟大家介紹在Perl中實作堆疊的方法,希望對大家有幫助。

Perl中如何實作堆疊

如何建立堆疊?

簡單來說,堆疊是一個數組,其中插入和刪除僅發生在稱為堆疊頂部的一端。

在Perl中建立堆疊非常簡單。我們需要做的就是聲明一個陣列。

範例:

建立一個可能為空的堆疊:

@stack;
登入後複製

或可以初始化一下:

@stack = (1, 2, 3);
登入後複製

堆疊中如何進行推送?

推送就是一種將元素插入堆疊的過程。可以使用push()函數或splice()函數完成推送。

1、使用push()推送:

基本語法:

push(@stack,list);
登入後複製

參數:

 ● @stack:要執行推送的堆疊。

 ● list:要壓入堆疊的元素。這些元素可能是標量,數組,哈希或這些元素的任意組合。

範例:  

#初始化堆栈
@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'。

 ● '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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板