>백엔드 개발 >C#.Net 튜토리얼 >Perl에서 스택을 구현하는 방법

Perl에서 스택을 구현하는 방법

青灯夜游
青灯夜游원래의
2019-03-16 14:09:412714검색

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 Tutorial"

위 내용은 Perl에서 스택을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.